2014-06-16 4 views
2

У меня есть API-адрес Rest https://www.box.com/api/oauth2/token. Чтобы получить токены обновления/доступа соответственно.Как сформировать WebRequest для данных формы Multi Part и это значение?

Когда я пробую это в PostMan (Chrome Extension) Его работая отлично. Ниже я прикрепил экран.

Получение токена доступа Ссылка: https://developers.box.com/oauth/

enter image description here

Но тот же я попробовал в коде его дать мне Bad Request Error.

public string PostToUrl(string url, string data) 
    { 
     string results = String.Empty; 
     WebRequest req = WebRequest.Create(url); 
     req.Method = WebRequestMethods.Http.Post; 
     byte[] byteArray = Encoding.UTF8.GetBytes(data); 
     req.ContentType = "application/x-www-form-urlencoded"; 
     req.ContentLength = byteArray.Length; 
     Stream dataStream = req.GetRequestStream(); 
     dataStream.Write(byteArray, 0, byteArray.Length); 
     dataStream.Close(); 
     WebResponse res = req.GetResponse(); 
     dataStream = res.GetResponseStream(); 
     StreamReader reader = new StreamReader(dataStream); 
     results = reader.ReadToEnd(); 
     return results; 
    } 

    public override void TestConnection(TimeSpan timeout) 
    { 
     string json = PostToUrl("https://www.box.com/api/oauth2/token", "code=" + Code + "&grant_type=authorization_code&client_id=" + ClientId + "&client_secret=" + ClientSecret); 
    } 

здесь мой вопрос ....

Как мне нужно, чтобы сформировать запрос на этот отдых API call? Как объединить данные и значения Multi Form с этим запросом?

Box Запрос через сообщение Man:

enter image description here

Box Просьба Мой код:

enter image description here

ответ

1

Я добавил NameValueCollection в заголовки. Как Below

  var nameValue = new NameValueCollection 
      { 
       {"grant_type", "authorization_code"}, 
       {"client_id", ClientId}, 
       {"client_secret", ClientSecret}, 
       {"code", RefreshToken} 
      }; 

      request.Headers.Add(nameValue); 

Initial Reference Link

Сейчас он работает нормально.

2

Попробуйте сравнить как запрос с fiddler поймать различия.

Вы также можете упростить код обработки отдыха с помощью RestSharp.

+0

Спасибо за ваш ответ. Я сравнил уже через скрипача. Но я не понимаю, как добавить эти настройки контента с данными формы и ее значениями. я обновил вопрос – RajeshKdev