JAVA怎么调用接口?

Python014

JAVA怎么调用接口?,第1张

String sendPost(String jsonStr, String path)

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

望采纳