У меня есть следующие настройки: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?
Что скажет вам Fiddler? –
Что касается добавления кодировки в ответ типа Content-Type. PHP использует для отправки ответов ISO8859-1, в то время как .NET обычно ожидает UTF-8. – kiewic
Я добавил charset utf-8 в PHP-скрипт, но это, похоже, не помогает. Я не знаю Fiddler, я должен заглянуть в него ... – andreas