繁体   English   中英

C#API呼叫协助

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM