3

У меня есть приложение iPad, которое загружает plist с сервера на UIWebView, но когда я пытаюсь получить его как строку ответа с сервера, он возвращает код состояния http 400 с ответом string как Request Error (invalid_request).http status code 400 в странах Ближнего Востока

Это происходит только в странах Ближнего Востока. Один пользователь из Объединенных Арабских Эмиратов подтвердил вопрос о том, кому я отправил сборку adhoc для тестирования. Приложение возвращает код состояния 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]; 
.... 
+3

возможно цензура? – vikingosegundo

+0

Не могли бы вы указать страну? – Ency

+0

ISP контролирует, какие веб-сайты вы можете посетить, если одна из этих стран, о которых вы говорите, не хочет, чтобы пользователь собирался сказать веб-сайт .com, тогда вы не можете ничего с этим поделать, потому что они могут просто вернуть 400 без когда-либо попадающих на ваш сайт. – Joe

ответ

0

Я не уверен, если это проблема или нет, но эта линия:

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

устанавливает недопустимое значение для Accept -Эникод заголовка я считаю. Более обычными значениями были бы «compress, gzip», и вам не нужно действительно устанавливать его самостоятельно. Если вы хотите, чтобы текст/xml возвращался сервером, это должно войти в заголовок «Принять», хотя вам может и не понадобиться его в зависимости от настройки сервера.

Также необычно использовать заголовок Content-Type в запросе GET, есть ли причина, по которой вы добавляете это?

Последней возможностью было бы, если URL-адрес содержит необычные символы, что потенциально может привести к тому, что любой прокси-сервер вернет ошибку.