我目前有代码
try
{
string url = "http://myanimelist.net/api/animelist/update/" + "6.xml";
WebRequest request = WebRequest.Create(url);
request.ContentType = "xml/text";
request.Method = "POST";
request.Credentials = new NetworkCredential("username", "password");
byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes("<episode>4</episode>");
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);
reqstr.Close();
MessageBox.Show("Updated");
}
catch (Exception s)
{
MessageBox.Show(s.Message);
}
我正在尝试将数据发送到myanimelist.net 他们为此编写的代码是
URL: http://myanimelist.net/api/animelist/update/id.xml
Formats: xml
HTTP Method(s): POST
Requires Authentication:true
Parameters:
id. Required. The id of the anime to update.
Example: http://myanimelist.net/api/animelist/update/21.xml
data. Required. A parameter specified as 'data' must be passed. It must contain anime values in XML format.
Response: 'Updated' or detailed error message.
已经声明的使用代码示例是这样的,有没有人知道如何在c#中执行此操作或者我的原始代码有什么问题?
Usage Examples:
CURL: curl -u user:password -d data="XML" http://myanimelist.net/api/animelist/update/21.xml
编辑:当我浏览myanimelist.net时显示它尚未更新,我确信我的用户名和密码凭据是正确的
编辑2:我现在添加了一个响应,它出现了错误 “远程服务器返回错误:(501)未实现。”
答案 0 :(得分:2)
您实际上并未执行请求,因此一旦您完成了对请求流本身的写入操作,请执行实际的Web请求:
string result;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
}
}
此外,内容类型应为text/xml
or application/xml
- API可能会对此抱怨。仔细阅读其API的文档,确保您发送的内容是正确的。