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?
ls("package:httr", pattern = "content")
. Я не вижу ничего на страницах справки о принудительной длине контента, но они могут быть вам полезны. - person Richie Cotton   schedule 08.09.2014httr
0,5? (недавно вышел) - person hrbrmstr   schedule 08.09.2014httr_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