throws IOException {
byte[] data = jsonStr.getBytes()
java.net.URL url = new java.net.URL(path)
java.net.HttpURLConnection conn =
(java.net.HttpURLConnection) url.openConnection()
conn.setRequestMethod("POST")
conn.setConnectTimeout(5 * 1000)// 设置连接超时时间为5秒
conn.setReadTimeout(20 * 1000)// 设置读取超时时间为20秒
// 使用 URL 连接进行输出,则将 DoOutput标志设置为 true
conn.setDoOutput(true)
conn.setRequestProperty("Content-Type", "text/xmlcharset=UTF-8")
//conn.setRequestProperty("Content-Encoding","gzip")
conn.setRequestProperty("Content-Length", String.valueOf(data.length))
OutputStream outStream = conn.getOutputStream()// 返回写入到此连接的输出流
outStream.write(data)
outStream.close()//关闭流
String msg = ""// 保存调用http服务后的响应信息
// 如果请求响应码是200,则表示成功
if (conn.getResponseCode() == 200) {
// HTTP服务端返回的编码是UTF-8,故必须设置为UTF-8,保持编码统一,否则会出现中文乱码
BufferedReader in = new BufferedReader(new InputStreamReader(
(InputStream) conn.getInputStream(), "UTF-8"))
msg = in.readLine()
in.close()
}
conn.disconnect()// 断开连接
return msg
}
,在 call.addParameter(new QName(soapaction,"PassKey"), //设置要传递的参数前面添加几条语句就OK了
高版本的myeclipse可以自动生成
添加语句如下:
call.setEncodingStyle( null )
call.setProperty( org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE )
call.setProperty( org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE )
call.setSOAPVersion( org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS )
其实你可以在C#程序里面使用到你的JAVA类的你将CLASS 文件编译成JAR 文件 再通过 下面的命令打包 ikvmc 需要下载的 (设置下环境变量) 具体你可以 搜索C#调用java indexjava.dll 你需要编译的文件名 C#调用的 名字随便取 后面的JAR 可以是一个或者多个 我使用到了多个 你可以将多个CLASS打包成一个 然后再C#引用 上面下载的几个ikvmc 里面有3个DLL也需要引用的我是调用成功了 webservice也可以ikvmc -out:indexjava.dll E:/indexjava.jar E:/lucene-demos-2.9.1.jar E:/lucene-demos-2.9.1.jar E:/lucene-core-2.9.1.jar E:/je-analysis-1.5.1.jar E:/IKAnalyzer.jar望采纳