HttpWebRequest от локальной службы WCF
Я провожу некоторое тестирование приложения Xamarin для Android с простым локальным сервисом WCF, чтобы убедиться, что мой код подключения работает.
Сервис: [OperationContract] строка Ping(); … Общедоступная строка Ping() { return "Pong"; }
Тестовый код в приложении Xamarin:
var request = HttpWebRequest.Create(string.Format(@"http://192.168.1.175/_Services/TestService1.svc/Ping"));
request.Credentials = CredentialCache.DefaultCredentials;
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.ContentLength = 0; //pass.Length;
request.Method = "POST";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) //Errors out here
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
var content = reader.ReadToEnd();
Console.Out.WriteLine("Response Body: \r\n {0}", content);
}
}
Ошибка:
Удаленный сервер возвратил ошибку: (400) Bad Request.
Редактировать:
При использовании ServiceReference работает следующее:
private void button3_Click (отправитель объекта, EventArgs e) { ServiceReference1.TestService1Client client = new ServiceReference1.TestService1Client();
string returnString;
returnString = client.Ping();
label1.Text = returnString;
}
Немного другой код все еще не работает: private void button4_Click(отправитель объекта, EventArgs e) {// string serviceUrl = " http://192.168.1.175/_Services/TestService1.svc"; string serviceUrl = " http://localhost/_Services/TestService1.svc";
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(new Uri(serviceUrl + "/Ping"));
httpRequest.Accept = "text/xml";
httpRequest.ContentType = "text/xml";
httpRequest.Method = "POST";
httpRequest.ContentLength = 0;
httpRequest.KeepAlive = false;
using (HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse()) //400 Bad Request
{
using (Stream stream = httpResponse.GetResponseStream())
{
label1.Text = (new StreamReader(stream)).ReadToEnd();
}
}
}
1 ответ
Ответ был внедрен в System.ServiceModel.Activation.WebServiceHostFactory
По какой-то причине ни один из моих источников не упомянул об этом во время исследования использования HttpWebRequest.
Я нашел ссылку случайно, глядя на потребление Android WCF. https://minafayek.wordpress.com/2013/04/02/consuming-iis-published-restful-wcf-service-from-android-over-wifi/
У меня есть свои программы тестирования, поэтому я должен быть в состоянии двигаться вперед.