Http请求不是从android C#发送的

时间:2014-02-24 07:26:54

标签: c# android httpwebrequest xamarin

我在Xamarin开发了一个跨平台的Android应用程序。我想发送一个注册我的设备的请求。我发送了DeviceIdDeviceNameEncodedAccountName,即我的电子邮件ID。 但我没有得到任何回应。我已经在Postman上测试了请求并得到了正确的回复。

这是我的代码:

StringBuilder registerContent = new StringBuilder();

        registerContent.Append("DeviceId=").Append(deviceId).Append("&");
        registerContent.Append("Name=").Append(deviceName).Append("&");
        registerContent.Append("EncodedAccountName‏=").Append(username);



WebRequest request = WebRequest.Create(EndPoints.RegisterDeviceEndPoint);
            // Set the Method property of the request to POST.
            request.Method = "POST";
            // Create POST data and convert it to a byte array.
            string postData = registerContent.ToString();
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            // Set the ContentType property of the WebRequest.
            request.ContentType= "application/x-www-form-urlencoded";
            // Set the ContentLength property of the WebRequest.
            request.ContentLength = byteArray.Length;
            // Get the request stream.
            Stream dataStream = request.GetRequestStream();
            // Write the data to the request stream.
            dataStream.Write(byteArray, 0, byteArray.Length);
            // Close the Stream object.
            dataStream.Close();
            // Get the response.
            WebResponse response = request.GetResponse();// Dont get any response here
            // Display the status.
            System.Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            // Get the stream containing content returned by the server.
            dataStream = response.GetResponseStream(); 
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);
            // Read the content.
            string responseFromServer = reader.ReadToEnd();
            // Display the content.
            System.Console.WriteLine(responseFromServer);
            // Clean up the streams.
            reader.Close();
            dataStream.Close();
            response.Close();

            return response.ToString();

关于我可能出错的任何想法?

由于

1 个答案:

答案 0 :(得分:0)

这是我通知Web API并等待string回复的方式:

string myParameters = "?firstParam=" + someParam1 + "&secondParam=" + someParam2;

string url = someHTTPAddress + myParameters;
stringResponseFromWebAPI = (new WebClient()).DownloadString(url);