【问题标题】:google app engine for java- using low level API to fetch data- some difficultiesgoogle app engine for java-使用低级API来获取数据-一些困难
【发布时间】:2011-12-14 22:32:29
【问题描述】:

在 Google App Engine for Java web 应用程序中,我试图使用低级 api 来调用 XML RPC ...查看文档后,我想出了以下代码来使用低级 API 进行连接-我想使用 Low Level API 的原因是我可以自己设置超时值--

         String mrtime="120";
         java.lang.Double maxresponsetime;
         maxresponsetime = Double.valueOf(mrtime).doubleValue();
         HTTPRequest req=  new  HTTPRequest(url, HTTPMethod.GET, disallowTruncate().setDeadline(maxresponsetime));
         HTTPResponse response= com.google.appengine.api.urlfetch.URLFetchServiceFactory.getURLFetchService().fetch(req);
         String line="";
         String resp="";
         resp=new String(response.getContent(), "UTF-8");

上面的代码适用于GAE访问远程URL的场景......但是我还必须发送包含函数名称以及输入参数的XML消息(这些存储在名为'message'的变量中)...如何将该消息发送到远程 URL,然后获取响应?

【问题讨论】:

    标签: java google-app-engine xml-rpc


    【解决方案1】:

    您应该发布调用方法和参数,而不是 GET。方法名称和参数采用 XML 格式。

    看到这个http://xmlrpc.scripting.com/spec.html

    【讨论】:

    • @SidMalani- 我已将方法名称和参数存储在单个变量中(以 XML 格式)...但是这里我没有 URL Connection 对象...我只有请求和响应...在这种情况下如何发送方法名称和参数?谢谢...
    • 但是 setPayload 使用 POST 而不是 GET。
    • @SidMalani- 我正在使用以下代码通过 POST 请求发送有效负载- HTTPRequest req= new HTTPRequest(url, HTTPMethod.POST, disallowTruncate().setDeadline(maxresponsetime));字节[] 有效载荷 = message.getBytes(); req.setPayload(有效载荷); HTTPResponse response= com.google.appengine.api.urlfetch.URLFetchServiceFactory.getURLFetchService().fetch(req);---但是我没有得到想要的响应..请告诉我(如果可能的话)我在这里做错了什么...谢谢...
    • 您是否尝试过更改超时时间?尝试增加它,看看你是否得到回应。您收到任何错误代码吗?
    猜你喜欢
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多