質問

UIWebViewでサーバーの罰金からプリストをロードするiPadアプリがありますが、サーバーから応答文字列として取得しようとすると、リクエストエラーとして応答文字列を使用してHTTPステータスコード400を返します(invalid_request)。

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

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

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

これがコードの一部です:

  .....
    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];
....
役に立ちましたか?

解決

これが問題であるかどうかはわかりませんが、この行:

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

私が信じている受け入れエンコードヘッダーに無効な値を設定しています。より通常の値は「圧縮、GZIP」であり、自分で設定する必要はありません。サーバーによってテキスト/XMLが返される場合は、「受け入れる」ヘッダーに入る必要がありますが、サーバーのセットアップに応じてまったく必要ない場合があります。

また、ゲットリクエストでコンテンツタイプのヘッダーを使用することも珍しいことですが、それを追加した理由はありますか?

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top