HTTP-запросы (POST) не работают правильно в библиотеке DLL? - PullRequest
0 голосов
/ 08 октября 2009

Я пытаюсь использовать TweetSharp в библиотеке DLL.

Когда я выполняю следующий код в библиотеке DLL, ответ возвращает недействительный (417 Неизвестно):

var verify = FluentTwitter.CreateRequest()
    .AuthenticateWith("<HIDDEN>",
        "<HIDDEN>",
        "<HIDDEN>",
        "<HIDDEN>")
    .Statuses().Update("It works!");

var response = verify.Request();

Когда я выполняю тот же код в приложении Windows, ответ возвращается правильно.

Есть ли какая-либо вещь (конфигурация), которая могла бы обрабатывать запросы HTTP (используя POST) по-разному, используя один и тот же код в библиотеке DLL и приложении Windows?

Ответы [ 3 ]

1 голос
/ 08 октября 2009

Скорее всего, в библиотеке "Expect100Continue" установлено значение true. Должно быть установлено значение false.

http://groups.google.com/group/twitter-api-announce/browse_thread/thread/7be3b64970874fdd

Похоже, эту библиотеку нужно обновить. Это было изменено около 10 месяцев назад.

Так что код должен выглядеть примерно так ...

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(newURL);
 request.Method = "POST";
 request.ServicePoint.Expect100Continue = false;
 request.ContentType = "application/x-www-form-urlencoded";
1 голос
/ 22 октября 2009

TweetSharp определенно обрабатывает проблему Expect100Continue, так что здесь есть что-то еще. Как выглядит ваш файл политики? Вы должны убедиться, что можете отправлять HTTP-запросы из DLL, если вы находитесь в среде со средним уровнем доверия, изменив свою политику.

0 голосов
/ 08 октября 2009

Вероятно, это текущий зарегистрированный пользователь, связанный

Попробуйте войти в систему с пользователем пула приложений на вашем веб-сайте и снова запустить код

...