Преобразование этого в HTTP POST в С#

В настоящее время я экспериментирую с HTTP-запросом. Мне удалось выполнить get запросы, и я читал о выполнении почтового запроса с HTTP-запросом. Теперь я пытаюсь работать с API Yahoo, и для использования API Yahoo указано, что в

API управления сообщениями можно использовать для отправки сообщения другому Yahoo! Контакт в мессенджере. API очень прост в использовании, как показано здесь. Обратите внимание, что контакт, которому отправляется сообщение, является частью URI в следующем формате: <server>/v1/message/<network>/<contactID>

POST /v1/message/yahoo/targetYahooId?sid=msgrsessionid  
Host: rcore1.messenger.yahooapis.com  
Authorization: < Standard OAuth credentials >  
Content-Type: application/json;charset=utf-8  
Content-Length: 25  
{  
    "message" : "Hey there"  
}  

Теперь у меня есть строка OAuth, которую я получил, используя объект HttpWebRequest. Строка примерно такая

oauth_token=A%3Dvh....aRg--&oauth_token_secret=bd46a....c9239&oauth_expires_in=3600&oauth_session_handle=ALtT.....3J1N4Zg--&oauth_authorization_expires_in=784964948&xoauth_yahoo_guid=TUSKED5...NCIA

ОБНОВЛЕНИЕ

Теперь мой вопрос заключается в следующем:

1- Если я использую объект WebRequest в С#, как будет выглядеть мой URI

2- Я понимаю, что для этого требуется объект типа JSON. Откуда я вообще знаю, что такое параметры OAuth?


person Rajeshwar    schedule 05.03.2013    source источник
comment
С какой частью у вас проблемы?   -  person jrummell    schedule 06.03.2013


Ответы (4)


Одна вещь, которую вам нужно изменить, — это тип контента:

request.ContentType = "application/json;charset=utf-8";

И, конечно же, адрес.

person jrummell    schedule 05.03.2013

вам нужно изменить URL-адрес в строке с URL-адресом в нем

вам нужно изменить строку типа контента

вам нужно преобразовать полезную нагрузку в строку json, а затем преобразовать ее в массив байтов (byteArray в образце)

либо соберите json вручную "{foo:'bar'}" и т. д., либо используйте json.net

и установите длину содержимого

person pm100    schedule 05.03.2013
comment
и вы должны использовать OAuth для аутентификации вашего пользователя, эта ссылка должна помочь deanhume.com/Home/BlogPost/ - person makim; 06.03.2013
comment
Я уже прошел аутентификацию и имею токен доступа - person Rajeshwar; 06.03.2013

Похоже, он ожидает объект JSON для тела запроса. В зависимости от версии .NET, которую вы используете, вы можете использовать сериализатор Javascript, как показано здесь (https://stackoverflow.com/a/7003815/939080) или JSON.NET (http://james.newtonking.com/projects/json-net.aspx), чтобы преобразовать коллекцию форм в вывод JSON.

person Chris Disley    schedule 05.03.2013
comment
Спасибо, я собираюсь взглянуть на JSON.NET - person Rajeshwar; 06.03.2013

Вы задаете открытый вопрос, который потребует, чтобы люди написали для вас кучу кода, если вы хотите получить конкретный и полный ответ. Как указывали другие, есть несколько проблем, с которыми вам нужно решить:

  • Полезная нагрузка JSON, которую можно было бы просто поместить в тело запроса с помощью массива byteArray, используемого в примере кода.
  • Тип контента, который вам нужно изменить, как описано jrummell.
  • Учетные данные OAuth, которые представляют собой целую кучу рыбы, о которой вам нужно прочитать, понять и приобрести библиотеку. Вот хорошее место для начала поиска библиотеки.
person Jollymorphic    schedule 05.03.2013