SOAP-запрос в R - Content-length = 0 - PullRequest
1 голос
/ 13 марта 2019

Может ли кто-нибудь разумно указать мне, куда я собираюсь свернуть с этим SOAP-запросом в R?Я могу получить действительный ответ от сервера при отправке запроса с Python, но в R я получаю пустое тело в ответе (Content-length = 0).

Вот пример запроса: http://www.bom.gov.au/waterdata/wiski-web-public/GetCapabilities%20example%20request.xml

и пример ответа: http://www.bom.gov.au/waterdata/wiski-web-public/GetCapabilities%20example%20response.xml

library(RCurl)

headerFields = 
  c(Accept = "text/xml",
    'Content-Type' = "text/xml; charset=utf-8",
    SOAPAction = "")

TXbody = '<?xml version="1.0" encoding="UTF-8"?>
<soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:sos="http://www.opengis.net/sos/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:fes="http://www.opengis.net/fes/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:swes="http://www.opengis.net/swes/2.0" xsi:schemaLocation="http://www.w3.org/2003/05/soap-envelope http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd http://www.opengis.net/sos/2.0 http://schemas.opengis.net/sos/2.0/sos.xsd">
<soap12:Header>
<wsa:To>http://www.ogc.org/SOS</wsa:To>
<wsa:Action>
http://www.opengis.net/def/serviceOperation/sos/core/2.0/GetCapabilities
</wsa:Action>
<wsa:ReplyTo>
<wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID>0</wsa:MessageID>
</soap12:Header>
<soap12:Body>
<sos:GetCapabilities service="SOS"/>
</soap12:Body>
</soap12:Envelope>'

h = basicTextGatherer()
R <- curlPerform(url = "http://www.bom.gov.au/waterdata/services?service=SOS",
                 httpheader = headerFields,
                 postfields = TXbody, verbose=TRUE,
                 writefunction = h$update)
RXbody <- h$value()

Ответ, который я получаю:

  • Попытка 104.99.8.39 ...
  • Подключено к www.bom.gov.au (104.99.8.39) порт 80 (# 0)

    POST / waterdata / services? Service = SOS HTTP / 1.1 Хост: www.bom.gov.au Принять: text / xml Content-Type: text / xml;charset = utf-8 Content-Length: 1018

  • загрузка полностью отправлена: 1018 из 1018 байтов

  • Соединение № 0на хостинге www.bom.gov.au оставлен без изменений

Я пробовал это: SOAP-запрос в R и это: SOAP-запрос сбой в R

...