是否可以使用HTTP Client調用Web服務?HTTP WebService
如果是給我一些例子。我如何獲得該Web服務中存在的方法列表?
例如:
它有兩個功能FahrenheitToCelsius和CelsiusToFahrenheit
注: 我知道如何使用Web客戶端調用web服務,但我需要執行呼叫通過使用HTTP客戶端的webService
是否可以使用HTTP Client調用Web服務?HTTP WebService
如果是給我一些例子。我如何獲得該Web服務中存在的方法列表?
例如:
它有兩個功能FahrenheitToCelsius和CelsiusToFahrenheit
注: 我知道如何使用Web客戶端調用web服務,但我需要執行呼叫通過使用HTTP客戶端的webService
只要Web服務通過HTTP協議公開就可以了。但是你必須自己解析答案,並自己構造有效的請求。更容易使用像這樣的框架,如Apache Axis,它具有所有這些自動化功能。
您還應該注意到,此Web服務正在使用SOAP協議,在您嘗試使用它時應考慮到這一點。
是的,你可以。例如。與Apache HttpClient 4.2.1。
import java.io.File;
import java.io.IOException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.fluent.Content;
import org.apache.http.client.fluent.Request;
import org.apache.http.entity.ContentType;
public class HttpClientPost {
public static void main(String[] args) throws ClientProtocolException, IOException {
String request = "<soapenv:Envelope response xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
"xmlns:tem=\"http://tempuri.org/\"><soapenv:Header/><soapenv:Body>" +
"<tem:CelsiusToFahrenheit><tem:Celsius>100</tem:Celsius>" +
"</tem:CelsiusToFahrenheit></soapenv:Body></soapenv:Envelope>";
Content response = Request.Post("http://www.w3schools.com/webservices/tempconvert.asmx")
.bodyString(request, ContentType.TEXT_XML).execute().returnContent();
System.out.println("response: " + response);
}
}
對於方法看WSDL文件中名爲操作的元素。
我有點困惑,使用Apache Axis 2可以給你一個例子來獲取方法列表以及如何將參數傳遞給該方法 – Bucks