发送REST api方法调用的POST请求

时间:2011-07-08 16:22:50

标签: xamarin.android

发送POST http请求时遇到问题。它在(HttpWebResponse)request.GetResponse()停止,并在超时后抛出超时过期异常,但如果我通过GET发送相同的请求,则一切正常。

有没有人知道它是什么?

try
        {
            var request = (HttpWebRequest)WebRequest.Create(uri);
            request.Method = "POST";

            if (content != null)
                request.GetRequestStream().Write(content, 0, content.Length);

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                return new Response(response);
            }
        }
        catch (WebException exception)
        {
            return new Response(exception);
        }

2 个答案:

答案 0 :(得分:0)

最有可能的原因是服务器上的代码没有将此方法暴露为POST。如果服务器没有明确设置anyhting,则默认为GET。

答案 1 :(得分:0)

解决了此代码的问题:

        using (var requestStream = request.GetRequestStream())
        {
            if (content != null)
            {
                requestStream.Write(content, 0, content.Length);
            }

            requestStream.Close();

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                return new Response(response);
            }
        }