Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 中东国家的http状态代码400_Iphone_Asihttprequest_Http Status Codes_Http Status Code 400 - Fatal编程技术网

Iphone 中东国家的http状态代码400

Iphone 中东国家的http状态代码400,iphone,asihttprequest,http-status-codes,http-status-code-400,Iphone,Asihttprequest,Http Status Codes,Http Status Code 400,我有一个iPad应用程序,它在UIWebView上从服务器加载plist,但当我试图从服务器获取plist作为响应字符串时,它返回一个http状态代码400,响应字符串作为请求错误(无效的请求) 这种情况只发生在中东国家。一位来自阿拉伯联合酋长国的用户证实了这个问题,我向他发送了一个临时构建进行测试。应用程序返回状态代码400,但plist在UIWebView上加载良好 我一直在尝试两个不同的服务器-AWS服务器和另一个托管在美国。对于这两个服务器,它给出了相同的状态代码 有人能就为什么会发生这

我有一个iPad应用程序,它在UIWebView上从服务器加载plist,但当我试图从服务器获取plist作为响应字符串时,它返回一个http状态代码400,响应字符串作为请求错误(无效的请求)

这种情况只发生在中东国家。一位来自阿拉伯联合酋长国的用户证实了这个问题,我向他发送了一个临时构建进行测试。应用程序返回状态代码400,但plist在UIWebView上加载良好

我一直在尝试两个不同的服务器-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"];
正在为我认为的接受编码头设置无效值。更常见的值是“compress,gzip”,您实际上不需要自己设置它。如果您希望服务器返回文本/xml,则应该将其放入“Accept”标题中,尽管根据服务器设置,您可能根本不需要它

在GET请求上使用内容类型头也是不常见的,您添加它有什么原因吗


最后一种可能性是,如果URL包含异常字符,可能会导致任何代理服务器返回错误。

能否指定国家/地区?ISP控制您可以访问的网站,如果你提到的这些国家中有一个不想让用户访问某个网站,那么你对此无能为力,因为他们可以返回一个400,而不会访问你的网站。我刚刚编辑了我的问题。一位来自阿联酋的用户对此问题进行了确认。