[英]C# API call Assistance
我正在更改我们的API调用之一
当前通话的格式为
[url]/[user]/[itemid]
新呼叫的格式为:
[url]
{
"user": ["user"],
"category": ["category"],
"itemIds": ["itemid1"], ["itemid2"]
}
在C#中,我目前按以下方式构建请求:
string requestUrl = string.Format(_url, _userID, _itemID);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestUrl);
string password = GetSignatureHash();
request.Method = "GET";
request.ContentType = "application/json";
request.Accept = "application/json";
request.Headers["Authorization"] = "Basic " + password;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
有人可以建议我如何用上面提供的详细信息填充新的HTTP请求吗?
任何帮助,建议或链接将不胜感激。
您应该将Json.NET用作序列化器并写入请求流 。 您应该有一个类可以镜像您的请求的数据结构。 例如
public class MyRequest
{
[JsonProperty("user")]
public int User { get; set; }
[JsonProperty("category")]
public int Category { get; set; }
[JsonProperty("itemIds")]
public IList<string> ItemIds { get; set; }
}
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(_url);
string password = GetSignatureHash();
request.Method = "POST";
request.ContentType = "application/json";
request.Accept = "application/json";
request.Headers["Authorization"] = "Basic " + password;
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
var myRequest = new MyRequest { User = 1, Category = 1,
ItemIds = new[] { "1", "2" } };
streamWriter.Write(JsonConvert.SerializeObject(myRequest));
streamWriter.Flush();
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
发送的请求将类似于:
{
"user": 1,
"category": 1,
"itemIds": [
"1",
"2"
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.