Я пытаюсь опубликовать данные от PCL проект удаленному серверу. Ниже мой код:Исключение при попытке отправить данные из проекта PCL
public async Task<bool> SendToken(string deviceToken, string userId)
{
HttpWebRequest request;
string url = "http://192.168.1.171:91/api/updatePushDeviceToken";
request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.Accept = "application/json";
request.Method = "POST";
string postData = string.Format("userId={0};token={1}&deviceType={2}", userId, deviceToken, deviceType);
var data = Encoding.UTF8.GetBytes(postData);
try
{
request.BeginGetResponse(new AsyncCallback(FinishRequest), request);
}
catch (Exception e)
{
string m = e.Message;
}
return false;
}
private void FinishRequest(IAsyncResult result)
{
HttpWebResponse response = (result.AsyncState as HttpWebRequest).EndGetResponse(result) as HttpWebResponse;
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream);
var responseString = readStream.ReadToEnd();
}
Во время работы над кодом ниже было брошено исключение:
System.Net.WebException: The remote server returned an error: (411) Length Required.
PCL не содержит ContentLength свойства, поэтому я добавил длину, как показано ниже, но теперь я получаю исключение, как :
try
{
request.Headers[HttpRequestHeader.ContentLength] = "0";
}
catch (Exception e)
{
}
System.ArgumentException: This header must be modified with the appropiate property. at System.Net.WebHeaderCollection.CheckRestrictedHeader (System.String headerName)
Вы делаете кодировать данные, но вы никогда не добавить его на запрос или я что-то пропустил? – Adwaenyth