我几乎没有使用我的应用程序中的http调用CRM应用程序。我需要知道它是通过SOAP还是REST。我能通过REST或SOAP使用url知道它吗?或者有没有办法找到如何确定协议。代码段如下:
HttpRequestBase request = new HttpGet(url);
request.setParams(/*some HttpParams*/);
ResponseHandler<String> responseHandler = new UnicodeResponseHandler();
String response = httpClient.execute(request, responseHandler);
/* where httpClient is an instance of org.apache.http.client.HttpClient */
/* where url is a http url */
答案 0 :(得分:1)
基本上HttpClient
可以用于进行REST和SOAP调用,检查this link是否有SOAP调用。
主要区别在于您进行请求和解析响应的方式。
答案 1 :(得分:1)
我对这个问题感到有些困惑。查询Crm有几种不同的方法。 REST与OData,SOAP与WSDL,SOAP没有WSDL。
您可以非常轻松地区分Url,因为有不同的SOAP和REST端点。看看设置&gt;定制&gt;开发者资源。
我真的不明白你要动态使用一个(或两个?)的情况,因为每个的用法都大不相同。
如果这只是关于CRM 2011 SOAP&amp; amp; REST我建议看一下MSDN。
答案 2 :(得分:0)
即REST,您正在创建一个http get并设置HTTP参数(不包括soap)并获得响应。响应可以是普通的旧字符串,json或xml ...
答案 3 :(得分:0)
据我所知,没有这样的方式。
如果你很幸运 - 如果这是SOAP Web服务,URL将返回WSDL,
但这不是强制性的。
您可能会尝试将“?wsdl
”添加到URL中 - 但再一次,这是Java的一些SOAP Web服务框架的约定 -
但根据规范仍然不是强制性的。
SOAP有效负载基于XML,因此如果URL返回的内容类型不是“application / xml”,您可能会认为这是REST Web服务。 此外,SOAP仅使用POST方法,而REST使用GET,以及其他HTTP方法 - PUT和DELETE。
在您的代码中,例如,您正在使用GET方法,因此我们可能认为这是RESTFul Web服务,但谁说这不是代码中的错误,您实际上需要在这里使用POST? 但是再一次 - 这种方法并不安全,因为RESTFul Web服务可能会以XML格式返回数据。
您必须实现一些发现机制,或者可能使用服务的set host / IP地址配置应用程序,并且每个服务器都会在配置中确定这是SOAP还是REST。