0

我怎么能做类似http://myanimelist.net/modules.php?go=api#verifycred

又名“curl -u 用户:密码http://myanimelist.net/api/account/verify_credentials.xml

我希望选择我的代码到目前为止的 id

string url = "http://myanimelist.net/api/account/verify_credentials.xml";
WebRequest request = WebRequest.Create(url);
request.ContentType = "xml";
request.Method = "GET";
request.Credentials = new NetworkCredential(username, password);
byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes("xml/user/id"); // i think this line?
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);                 
reqstr.Close();  

但我收到一个错误“ reqstr.Write(buffer, 0, buffer.Length)”无法发送带有这种动词类型的内容主体,我尝试过谷歌搜索但没有占上风,我正在使用 c#

4

1 回答 1

2

您的代码段正在尝试发送GET带有请求数据的请求(您正在调用GetRequestStream然后将一些数据写入请求流)。HTTP 协议不允许这样做 - 您只能通过POST请求发送数据。

但是,您尝试调用的 API 实际上是在做一些不同的事情——您不需要向它发送 XML 数据。XML 数据(带有用户 ID 和用户名)是您成功登录时得到的响应。

因此,您需要调用然后读取XML 数据,而不是调用GetRequestStream写入XML 数据!GetResponseGetResponseStream

于 2013-06-10T00:28:26.373 回答