0

アプリケーションから http を使用して CRM アプリケーションを呼び出すことはほとんどありません。SOAPまたはRESTを介しているかどうかを知る必要があります。URL を使用して、REST 経由か SOAP 経由かを知ることができますか? または、プロトコルを決定する方法を見つける方法はありますか。コード スニペットは次のとおりです。

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 */
4

4 に答える 4

1

私はその質問に少し混乱しています。Crm にクエリを実行するには、いくつかの方法があります。OData を使用する REST、WSDL を使用する SOAP、WSDL を使用しない SOAP。

SOAP エンドポイントと REST エンドポイントが異なるため、URL との違いは非常に簡単にわかります。[設定] > [カスタマイズ] > [開発者リソース] をご覧ください。

ここに画像の説明を入力

それぞれの使用法がまったく異なるため、一方(または両方)を動的に使用しようとしているこの状況を本当に理解していません。

これが CRM 2011 SOAP & REST に関する一般的な質問である場合は、MSDNを参照することをお勧めします。

于 2012-10-09T11:04:20.847 に答える
1

基本的HttpClientに、REST 呼び出しと SOAP 呼び出しの両方に使用できます。SOAP 呼び出しの使用法については、このリンクを確認してください。

主な違いは、リクエストの作成方法とレスポンスの解析方法にあります。

于 2012-10-09T10:27:08.360 に答える
0

つまり、REST です。http get を作成し、HTTP パラメーター (soap を除く) を設定して、応答を取得しています。応答は、プレーンな古い文字列、json、または xml にすることができます...

于 2012-10-09T10:25:18.567 に答える
0

私の知る限り、そのような方法はありません。

運が良ければ、これが SOAP Web サービスの場合、URL は WSDL を返しますが、これは必須ではありません。URLに " " を追加しようとするかもしれませんが?wsdl、これも Java の SOAP Web サービス フレームワークの規則です。ただし、仕様によると、まだ必須ではありません。

SOAP ペイロードは XML に基づいているため、コンテンツ タイプが「application/xml」ではない URL が返された場合、これは REST Web サービスであると見なすことができます。さらに、SOAP は POST メソッドのみで動作しますが、REST は GET を使用し、その他の HTTP メソッド (PUT および DELETE) も使用します。

たとえば、コードでは GET メソッドを使用しているため、これは RESTFul Web サービスであると考えるかもしれませんが、これはコードのバグではなく、実際にここで POST を使用する必要があると誰が言いましたか? ただし、RESTFul Web サービスは XML 形式でデータを返す可能性があるため、この方法は安全ではありません。

何らかの検出メカニズムを実装するか、サービスのホスト/IP アドレスを設定してアプリケーションを構成し、それらのそれぞれについて、これが SOAP であるか REST であるかを構成で決定する必要があります。

于 2012-10-09T10:25:46.660 に答える