2015-03-22 6 views
0

Я пытаюсь сделать сообщение для отдыха api с использованием HttpClient PCL в Xamarin. У меня есть следующий код, но я получаю 404. Заметим, что у меня нет реального ip-адреса здесь, но когда я использую Hurl.It с реальным, который он подключает просто отлично, но вот только 404. Что я отсутствует?Использование HttpClient в Xamarin PCL для публикации

string url = "http://myaddresshere/services/rest/auth/login"; 
string result = String.Empty; 

using (var client = new HttpClient()) { 
    var content = new FormUrlEncodedContent(new[] { 
     new KeyValuePair<string, string>(txtUsername.Text, "username"), 
     new KeyValuePair<string, string>(txtPassword.Text, "password") 
    }); 

    using (var response = await client.PostAsync(url, content)) { 
     using (var responseContent = response.Content) { 
      result = await responseContent.ReadAsStringAsync(); 
     } 
    } 
} 
+0

У вас есть перенаправление портов на маршрутизаторе? У вас есть брандмауэр (в маршрутизаторе или ПК), блокирующий вас? – Milen

+0

Вызов API из обычного проекта visual studio работает, поэтому я бы не подумал, что это будет проблемой? Должен ли этот код работать? Как это работает для вас в проекте Xamarin PCL? – user441521

+0

Вы говорите, что из проекта, отличного от PCL (> = .NET 4.5), * точный * код выше работает отлично, но это не из PCL? Быстрый способ быть уверенным в том, что вы создадите консольное приложение, которое ссылается на PCL, содержащий вышеуказанный код * и *, вставьте тот же код непосредственно в консольное приложение и вызовет приложение обоих. Это приведет к тому, что Xamarin выйдет из уравнения и должен помочь определить, действительно ли проблема с версией PCL для HttpClient. –

ответ

2

Вы, вероятно, следует перейти в код:

new KeyValuePair<string, string>(txtUsername.Text, "username"), 
new KeyValuePair<string, string>(txtPassword.Text, "password") 

To:

new KeyValuePair<string, string>("username", txtUsername.Text), 
new KeyValuePair<string, string>("password", txtPassword.Text) 
+0

У меня нет метода входа в api. Я не делал api, и у меня нет доступа к нему. Как сказано, все работает нормально, когда я пробую это с веб-сайтом Hurl.It. Это тоже не сработало :(Не могу поверить, что это сложно сделать вызов веб-службы в PCL. Мой опыт PCL Xamarin до сих пор не очень хорош :( – user441521

+0

Это приложение iOS, в котором я работаю над mac. Fiddler, похоже, не существует для Mac, который я вижу. – user441521

+0

вы можете попробовать это приложение для скрипача: http://www.charlesproxy.com/ – IdoT