Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用method::http::geturl-methodput放置xml内容_Http_Tcl_Alm - Fatal编程技术网

如何使用method::http::geturl-methodput放置xml内容

如何使用method::http::geturl-methodput放置xml内容,http,tcl,alm,Http,Tcl,Alm,当我尝试使用Fire Fox Open HttpRequest插件时,我能够成功地安装 PUT http://12.222.20.17:8080/qcbin/rest/domains/test/projects/runtest/runs/385762 Accept: application/xml Content-Type: application/xml <Entity Type="run"> <Fields> <Field Name

当我尝试使用Fire Fox Open HttpRequest插件时,我能够成功地安装

PUT http://12.222.20.17:8080/qcbin/rest/domains/test/projects/runtest/runs/385762
Accept: application/xml
Content-Type: application/xml
<Entity Type="run"> 
    <Fields> 
         <Field Name="status"> 
               <Value>Passed</Value> 
         </Field> 
     </Fields> 
</Entity>

 -- response --
200 OK
Server:  Apache-Coyote/1.1
PUThttp://12.222.20.17:8080/qcbin/rest/domains/test/projects/runtest/runs/385762
接受:应用程序/xml
内容类型:application/xml
通过
--回应--
200行
服务器:ApacheCoote/1.1
但我试图用TCL PUT方法http包模拟相同的操作,我得到了错误的请求响应

set xml {<Entity Type="run"><Fields><Field Name="status"><Value>Passed</Value></Field></Fields></Entity>}
set Headers(Cookie) $cookie
set Headers(Accept) "application/xml"
set Headers(Content-Type) "application/xml"
set Headers(Content) $xml
set token [::http::geturl "http://12.222.20.17:8080/qcbin/rest/domains/test/projects/runtest/runs/385762" -method PUT -headers [array get Headers]]
set xml{Passed}
设置标题(Cookie)$Cookie
设置标题(接受)“应用程序/xml”
设置标题(内容类型)“应用程序/xml”
设置标题(内容)$xml
设置令牌[::http::geturl”http://12.222.20.17:8080/qcbin/rest/domains/test/projects/runtest/runs/385762“-method PUT-headers[array get headers]]
回应

% ::http::data $token
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><QCRestException><Id>qcco
re.general-error</Id><Title>Bad Request</Title><StackTrace>javax.ws.rs.WebApplic
ationException: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog&#xD;

 at [row,col {unknown-source}]: [1,0]&#xD;
        at org.apache.wink.common.internal.providers.entity.xml.JAXBXmlProvider.
readFrom(JAXBXmlProvider.java:113)&#xD;
        at org.apache.wink.server.internal.registry.ServerInjectableFactory$Enti
tyParam.getValue(ServerInjectableFactory.java:190)&#xD;
%::http::data$token
qcco
re.general-errorBad Requestjavax.ws.rs.WebApplic
ationException:com.ctc.wstx.exc.WstxEOFException:prolog和xD中的意外EOF;
在[row,col{unknown source}]:[1,0]
;
位于org.apache.wink.common.internal.providers.entity.xml.JAXBXmlProvider。
readFrom(JAXBXmlProvider.java:113)和#xD;
位于org.apache.wink.server.internal.registry.ServerInjectableFactory$Enti
getValue(ServerInjectableFactory.java:190)和#xD;
我不知道我在哪里失踪,请有人帮我解决这个问题


感谢

通过PUT在您的请求中发送XML文档,假设您已将文档序列化为可通过
$theXML
获得的字符串,则只需执行以下操作:

# Type *might* need to be text/xml
http::geturl $theServiceURL -method PUT -type application/xml -query $theXML
当然,您必须确保您处理的令牌返回正确,以此类推。
http
包的级别仍然很低。(例如,您可能必须使用
http::config
来设置响应中的MIME类型,并且您需要自己处理会话的重定向和cookie。)


改为发送JSON?然后,类型变为
application/json
。轻松点