0

私は現在コードを持っています

           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) 実装されていません」というエラーが表示される応答を追加しました。

4

1 に答える 1

2

実際にはリクエストを実行していないため、リクエスト ストリーム自体への書き込みが完了したら、実際の Web リクエストを実行します。

  string result; 
  using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
  {
       using (StreamReader reader = new StreamReader(response.GetResponseStream()))
       {
            result = reader.ReadToEnd();
       }
  }

また、コンテンツ タイプはtext/xmlorapplication/xmlである必要があります - API がそれについて不平を言っている可能性があります。API のドキュメントを注意深く読み、送信内容が正しいことを確認してください。

于 2013-08-13T12:59:41.360 に答える