我的项目需要 GET 来验证用户身份。 这是我试图模仿的CURL
curl -H "Content-Type: application/json" -H "header1: headerData" -k -X GET https://url.com/x1/users/userSlug
C#我正在使用
using (var client = new WebClient())
{
var urlEndPoint= URL + '/' + UserSlug;
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
client.Headers.Add("header1", headerData);
try
{
PopulatedUser = serializer.Deserialize<User>(client.UploadString(new Uri(urlEndPoint), "GET", String.Empty));
return PopulatedUser;
}
catch (WebException e)
{
PopulatedUser = serializer.Deserialize<User>(new StreamReader(e.Response.GetResponseStream()).ReadToEnd());
//TODO: find server log code examples for errors
return PopulatedUser;
}
}
使用String.Empty,我得到了
InnerException = {“无法使用此动词类型发送内容正文。”}
我不知道如何处理这个并获得用户数据的回复。
当我执行CURL命令时,我回来了
{ “状态”:“好”, “代码”:200, “data”:{“user”:{“id”:“thisguy”,userFirstname:“bob”.... etc
答案 0 :(得分:0)
您没有向服务器上传任何内容,因此您不应该使用UploadString
- 上传通常会使用POST
或STOR
(对于ftp),但不会GET
,这可能是出错的地方。
请改用DownloadString
。它使用GET
。
所以,而不是:
client.UploadString(new Uri(urlEndPoint), "GET", String.Empty)
使用:
client.DownloadString(new Uri(urlEndPoint))