2

我正在使用 Grails Plugin rest=0.7 来使用 Rest Webservice。

当服务的响应是 xml 时,一切正常,但如果响应是像 pdf 这样的文件类型,它必须在发送请求时开始下载,但下载根本没有开始。

以下代码在 grails 服务中实现。

    String httpUrl = 'http://abc.com/myService'
    String data = '<methodcall protocol="2" method="avalidmethodname"><cmdid/><data><project_id>1</project_id><user_id>2</user_id><operation>ABC</operation><filter><status_type_id>1</status_type_id><scope_bits>00</scope_bits></filter></data></methodcall>'
     String respText = ''
    HttpClient httpClient = new DefaultHttpClient()
    HttpResponse response
    try {
        HttpPost httpPost = new HttpPost(httpUrl)
        httpPost.setHeader("Content-Type", "text/xml")
        HttpEntity reqEntity = new StringEntity(data, "UTF-8")
        reqEntity.setContentType("text/xml")
        reqEntity.setChunked(true)
        httpPost.setEntity(reqEntity)
        response = httpClient.execute(httpPost)
     //   HttpEntity resEntity = response.getEntity()
     //   respText = resEntity.getContent().text
    }
    finally {
        httpClient.getConnectionManager().shutdown()
    }
    return response
 //  return respText 

代码中的注释行是针对 xml 响应的情况。

请帮我解决这个问题,我不确定我使用的方法在来自网络服务的文件响应的情况下是否有效。

4

1 回答 1

0

尝试添加

response.setContentType("text/pdf");

response = httpClient.execute(httpPost);
于 2013-12-23T13:04:05.277 回答