Может ли кто-нибудь разумно указать мне, куда я собираюсь свернуть с этим 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 оставлен без изменений
Подключено к 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 байтов
Я пробовал это: SOAP-запрос в R и это: SOAP-запрос сбой в R