3

UIWebViewでサーバーからplistを正常にロードするiPadアプリがありますが、サーバーから応答文字列として取得しようとすると、要求エラー(invalid_request)として応答文字列を含むhttpステータスコード400が返されます。

それは中東諸国でのみ起こります。アラブ首長国連邦の1人のユーザーが、テスト用にアドホックビルドを送信した問題について確認しました。アプリはステータスコード400を返しますが、plistはUIWebViewに正常に読み込まれます。

AWSサーバーと米国でホストされている別のサーバーの2つの異なるサーバーを試していました。両方のサーバーで、同じステータスコードが表示されます。

なぜそれが起こるべきかについて誰かが提案をすることができますか?

コードの一部は次のとおりです。

  .....
    ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
    [request addRequestHeader:@"Content-Type" value:@"text/xml; charset=utf-8"];
    [request addRequestHeader:@"Accept-Encoding" value:@"text/xml;charset=utf-8"];

    [request setRequestMethod:@"GET"];
    [request setDelegate:self];

    [request setDidFinishSelector: @selector(gotTheResponse:)];

    [request setDidFailSelector: @selector(requestFailed:)];
    [networkQueue addOperation: request];
    [networkQueue go];
....
4

1 に答える 1

0

これが問題かどうかはわかりませんが、次の行にあります。

[request addRequestHeader:@"Accept-Encoding" value:@"text/xml;charset=utf-8"];

Accept-Encodingヘッダーに無効な値を設定していると思います。より一般的な値は「compress、gzip」であり、実際に自分で設定する必要はありません。サーバーからtext/xmlを返す場合は、「Accept」ヘッダーに入れる必要があります。ただし、サーバーの設定によっては、まったく必要ない場合もあります。

GETリクエストでContent-Typeヘッダーを使用することも珍しいですが、それを追加する理由はありますか?

最後の可能性の1つは、URLに異常な文字が含まれている場合です。これにより、プロキシサーバーがエラーを返す可能性があります。

于 2011-04-29T17:52:13.657 に答える