我目前正在使用 Quizlet.com 的 API(一个在线抽认卡网站)为 Windows Phone 8 开发 C# 应用程序。
API 参考中记录的用于编辑抽认卡集的 API 调用之一要求您通过 PUT 方法发送一组术语和定义。
大概这样做你必须使用HttpWebRequest
而不是WebClient
,因为后者太简单并且据我所知不支持 PUT 请求。但是,我似乎无法理解如何将整个数组作为 PUT 请求的一部分发送。
有人对如何做到这一点有任何想法吗?很抱歉,我没有要附加的源代码,但这可能没有必要,因为这是一个更普遍的问题。
提前致谢!
这是我当前使用的代码不起作用:
RestClient Edit = new RestClient("https://api.quizlet.com");
RestRequest EditRequest = new RestRequest();
EditRequest.AddParameter("term_ids[]", ID);
EditRequest.AddParameter("terms[]", Terms);
EditRequest.AddParameter("definitions[]", Definitions);
EditRequest.AddParameter("title", item.Title);
EditRequest.AddHeader("Authorization", "Bearer " + CurrentLogin.AccessToken);
EditRequest.AddHeader("Host", "api.quizlet.com");
EditRequest.Resource = "2.0/sets/" + item.Id;
EditRequest.Method= Method.PUT;
Edit.ExecuteAsync(EditRequest, Response =>
{
FinalizeUpdate(Response);
});
我这样声明我的数组:
int[] ID;
string[] Terms;
string[] Definitions;
我将数据添加到我的数组中(TermsList 是一个 ObservableCollection):
foreach(Term i in TermsList)
{
ID[Counter] = i.Id;
Terms[Counter] = i.Name;
Definitions[Counter] = i.Definition;
Counter++;
}
下面是 Term 的类定义:
public class Term
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("term")]
public string Name { get; set; }
[JsonProperty("definition")]
public string Definition { get; set; }
}