2013-08-13 3 views
0

я в настоящее время есть кодC# апи Быстродействие и запрос

  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 

редактировать: Когда я Lauch myanimelist.net это показывает, что он не был обновлен, я уверен, что мое имя пользователя и пароль учетных данных являются правильными

Edit 2: Теперь я добавил ответ, который приходит с ошибкой «Удаленный сервер ответил на ошибку: (501) Не реализовано».

+0

Итак, что пошло не так? –

+0

Когда я lauch myanimelist.net, он показывает, что он не был обновлен, я уверен, что мои учетные данные для имени пользователя и пароля верны – Froodle

ответ

2

Вы на самом деле не выполнить запрос, так как только вы закончите писать самому запроса потока, выполнения фактического веб-запроса:

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 и убедитесь, что вы правильно отправляете.

+0

cheers, теперь я получаю сообщение об ошибке «Удаленный сервер вернул ошибку: (501) Не реализовано». – Froodle

+1

@FroodleStirling, я внес некоторые исправления, но я думаю, что остальная часть этого вопроса может выходить за рамки вопроса и немного локализоваться. –

+0

Попытка изменить тип контента, но без успеха, приветствия в любом случае – Froodle