DefaultHttpClient を使用して LAN をスキャンし、アドレスを見つけます。一部のコンピューターは、OData (WCF) サービスを提供します。URL は次のようになります。
http://someurl/Service/Service.svc/
ブラウザーで開くと、XML が表示されます。
コンピューターがないアドレスに接続しようとすると、ステータス コードとして標準の 404 が返されます。使用可能なコンピューターが見つかった場合、Method Not Allowedである 405 コードが表示されます。これに従って、何かを設定する必要があります。
Request-URI で識別されるリソースに対して、Request-Line で指定されたメソッドは許可されていません。応答には、要求されたリソースの有効なメソッドのリストを含む Allow ヘッダーが含まれている必要があります。
405 ではなく 200 のステータス コードを取得したいのですが、DefaultHttpClient がコンテンツとして xml を受け入れるようにするには、何を設定すればよいですか?
私が使用するコードは次のとおりです。
DefaultHttpClient hc = new DefaultHttpClient();
HttpParams httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used.
int timeoutConnection = 700;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
// Set the default socket timeout (SO_TIMEOUT)
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 700;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
hc.setParams(httpParameters);
HttpPost hp = new HttpPost(url);
HttpResponse hr= hc.execute(hp);
if (hr.getStatusLine().getStatusCode() == 405) {
// Do something...
}