2013-11-22 4 views
0

У меня есть следующие настройки:HttpClient PostAsync дает мне пустой результат для JSon страницы

стороне сервера

<?php 

$array = ...; 
header('Content-Type: application/json'); 
echo json_encode($array); 

?> 

стороне клиента

В моем iPhone приложение, я успешно подключен на мою сторону сервера и проанализировал json и загрузил его в NSDictionary.

Теперь я хотел бы сделать то же самое в C# для приложения Windows. Я использовал этот тестовый код:

public async void PostData(string url, string post) 
{ 
    HttpClient client = new HttpClient(); 
    var response = await client.PostAsync(url, new StringContent(post)); 
    response.EnsureSuccessStatusCode(); 

    string result = await response.Content.ReadAsStringAsync(); 
    Debug.WriteLine("RESULT|" + result + "|"); 
} 

Я попытался

PostData("http://www.mysite.com", ""); 

и возвратил HTML моего сайта.

Но когда доступ к моему JSON URL по

PostData("http://www.mysite.com/api/", ""); 

строка результата всегда пусто.

Я понятия не имею, что здесь происходит. Является ли какой-то заголовок неправильным на моей стороне сервера? Или почему мой результат строки всегда пуст? Как мне отладить это - обратите внимание, что я новичок в разработке Windows?

Или есть даже более быстрый способ загрузки и сохранения json в моем приложении Windows?

+0

Что скажет вам Fiddler? –

+0

Что касается добавления кодировки в ответ типа Content-Type. PHP использует для отправки ответов ISO8859-1, в то время как .NET обычно ожидает UTF-8. – kiewic

+0

Я добавил charset utf-8 в PHP-скрипт, но это, похоже, не помогает. Я не знаю Fiddler, я должен заглянуть в него ... – andreas

ответ

0

Благодаря Fiddler я обнаружил, что ошибки не было, но действительно пустая строка в качестве результата возврата.

Версии emtpy были возвращены при использовании устройства Windows из-за моей реализации PHP. Проблема явно была на стороне сервера.

Смежные вопросы