【问题标题】:C# api responce and requestC# api 响应和请求
【发布时间】:2013-08-13 12:43:05
【问题描述】:

我目前有代码

           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) Not Implemented。”

【问题讨论】:

  • 当我启动 myanimelist.net 时,它显示它尚未更新,我确定我的用户名和密码凭据正确

标签: c# api authentication request response


【解决方案1】:

您实际上并没有执行请求,因此一旦您完成了对请求流本身的写入,就执行实际的网络请求:

  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 文档并确保您发送的内容是正确的。

【讨论】:

  • 干杯,我现在收到错误“远程服务器返回错误:(501)未实现。”
  • @FroodleStirling,我做了一些修改 - 但我认为其余部分可能超出了问题的范围,并且有点过于本地化。
  • 尝试更改内容类型但没有成功,无论如何都干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多