r-project {httr} POST-аутентификация получает HTTP ERROR 411 от IIS7.5

y Я использую пакет {httr} для входа во внутреннее веб-приложение (Theradoc на IIS7.5), чтобы очистить некоторые данные html (заражение).

library(httr)
POST("http://ahdc372n2", authenticate("foo", "bar"), encode="multipart"), verbose())

В подробном выводе консоли говорится:

-> POST /theradoc/login/index.cfm HTTP/1.1
-> Authorization: Basic Y2xpbmludGVsbDowMWRFbmdsaXNo
-> User-Agent: curl/7.19.6 Rcurl/1.95.4.3 httr/0.4
-> Host: ahdc372n2.phs-sfalls.amck.net
-> Accept: */*
-> Accept-Encoding: gzip
-> Cookie: JSESSIONID=843052421c871dec2ac3a263b136d475a4a6
-> 
<- HTTP/1.1 411 Length Required
<- Content-Type: text/html; charset=us-ascii
<- Server: Microsoft-HTTPAPI/2.0
<- Date: Mon, 08 Sep 2014 15:53:02 GMT
<- Connection: close
<- Content-Length: 344
<- 
*  Closing connection #0

И в конечном итоге я получаю ">HTTP Error 411. Запрос должен быть разбит на части или содержать длина контента».

Я просмотрел этот старый пост без полезных указателей.

Есть ли способ заставить Content-Length в запросе httr POST?


person Colin    schedule 08.09.2014    source источник
comment
Вы можете увидеть функции, связанные с контентом, в httr, используя ls("package:httr", pattern = "content"). Я не вижу ничего на страницах справки о принудительной длине контента, но они могут быть вам полезны.   -  person Richie Cotton    schedule 08.09.2014
comment
Спасибо, Ричи. Думаю, тогда мне следует попробовать использовать пакет RCurl. Я думаю, что вы, вероятно, ответили на этот вопрос тогда ... Если вы хотите сделать это как ответ, я приму его. Не думайте, что вы могли бы дать мне эквивалент RCurl как часть ответа (мне просто лень :)?   -  person Colin    schedule 08.09.2014
comment
Можете ли вы также выполнить этот запрос в Chrome или где-то еще, где вы можете увидеть все присутствующие заголовки, когда запрос работает? Интересно, нужно ли вам добавить что-то еще в заголовок accept. Хотелось бы как-то воспроизвести среду, чтобы проверить, что происходит.   -  person MrFlick    schedule 08.09.2014
comment
Вы действительно не публикуете никаких данных в своем почтовом запросе?   -  person MrFlick    schedule 08.09.2014
comment
Вы пробовали это с httr 0,5? (недавно вышел)   -  person hrbrmstr    schedule 08.09.2014
comment
Я протестировал использование httr_0.4 с POST("http://requestb.in/????", authenticate("foo", "bar"), body=character(), encode="multipart", verbose()), где ???? был уникальным идентификатором, заданным http://requestb.in. Подробный вывод показал длину содержимого, а запрос, полученный сервером, имел заголовок длины содержимого. Какую версию httr вы используете (можно сказать по sessionInfo()). Вы также можете попробовать явно установить body=character(), чтобы указать отсутствие содержимого тела.   -  person MrFlick    schedule 08.09.2014


Ответы (1)


ОБНОВЛЕНИЕ: кажется, что ручная установка httr_0.5 из zip-архива решила проблему. Спасибо hrbmstr.

person Colin    schedule 08.09.2014