C# REST API - 发布请求:"You must provide a request body .."



我只是想从POST请求中获取REST-API响应。

收到此错误:

如果设置 ContentLength>0 或 发送分块==真。通过在之前调用 [Begin]GetRequestStream 来执行此操作 [开始]获取响应

这是我的代码:

public enum httpVerb
{
GET,
POST,
PUT,
DELETE
}
class RestProvider
{
public string uri { get; set; }
public httpVerb httpMethod { get; set; }
public RestProvider()
{
uri = "";
httpMethod = httpVerb.POST;
}
public string makeRequest()
{
string strResponseValue = string.Empty;        
var request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = httpMethod.ToString();
request.ContentLength = uri.Length;
request.ContentType = "application/x-www-form-urlencoded";
HttpWebResponse response = null;
try
{
response = (HttpWebResponse)request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
if (responseStream != null)
{
using (StreamReader reader = new StreamReader(responseStream))
{
strResponseValue = reader.ReadToEnd();
}
}
}
}
catch (Exception ex)
{
strResponseValue = "{"errorMessages":["" + ex.Message.ToString() + ""],"errors":{}}";
}
finally
{
if (response != null)
{
((IDisposable)response).Dispose();
}
}
return strResponseValue;
}
}

有什么想法吗?

这个:request.ContentLength = uri.Length;错了。 这不是ContentLength的目的。 要么不ContentLength,(在这种情况下它将为零(,要么发送一些请求内容并ContentLength设置为要发送的请求内容的长度。uri不是请求内容。

相关内容

最新更新