post传递XML获取返回值,可是死活得不到需要的结果,python 和 curl都能做到就是R不行,RCurl和httr都试过了,解决不了,以下是我的源代码
url1 <- 'http://www.rcsb.org/pdb/rest/search'
xml_text <- '<?xml version="1.0" encoding="UTF-8"?>
<orgPdbQuery>
<version>B0907</version>
<queryType>org.pdb.query.simple.ExpTypeQuery</queryType>
<description>Experimental Method Search : Experimental Method=SOLID-STATE NMR</description>
<mvStructure.expMethod.value>SOLID-STATE NMR</mvStructure.expMethod.value>
</orgPdbQuery>'
url1 <- 'https://api.finder.healthcare.gov/v3.0/getCountiesForZip'
xml_text <- '<?xml version="1.0" encoding="UTF-8"?>
<p:ZipCodeValidationRequest xmlns:p="http://hios.cms.org/api" xmlns:p1="http://hios.cms.org/api-types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hios.cms.org/api hios-api-11.0.xsd ">
<p:ZipCode>96704</p:ZipCode>
</p:ZipCodeValidationRequest>'
# first try ----
xml_txt <- xmlTreeParse(xml_text,useInternalNodes=T)
postForm(url1, "xml"=saveXML(xml_txt), style="post")
#failed
# second try ----
xml_out <- 'tmp.xml'
saveXML(xml_txt, xml_out)
result <- POST(url1, body = list(x = upload_file(xml_out)), encode = 'multipart' )
content(result)
# failed
# 3rd try ----
httpPOST(url1, content = xml_text)
# failed
# 4th try ----
h = basicTextGatherer()
result <- curlPerform(url = url1,
httpheader=c(Accept="text/xml", Accept="multipart/*",SOAPAction='"http://www.soaplite.com/Demo#hi"',
'Content-Type' = "application/xml; charset=utf-8"),
postfields=xml_txt,
writefunction = h$update,
verbose = TRUE
)
result
h$value()
# failed
请诸位大神帮忙