0

javaでpdfファイルをダウンロードするリクエストを投稿しようとしています。私が使用している-メソッドが変更された原因を修正しようとしています-他の誰かのコードと、私が見たところでは、Webサービスを介してpdfファイルを要求する前に、コンテンツタイプのチェックが行われます. 要求されたコンテンツ タイプに問題がない場合は、pdf ファイルをダウンロードするサービスが呼び出されます。

これは、コンテンツ タイプをチェックするメソッドです。

public boolean checkContentType(String serviceName, Map<String, String> params, String contentType) {


    params.put(PARAM_SERVICE, serviceName);     

    if(log.isDebugEnabled()) {
        log.debug("checkContentType for serviceName: " + serviceName + " - Params: " + params + " - contentType: " + contentType);
    }

    HttpClient httpclient = new HttpClient();
    GetMethod get = new GetMethod(basicUrl);       
    get.setQueryString(ParameterUtil.getValuePairs(params));     
    log.info(get.getQueryString());
    try {
        httpclient.executeMethod(get);                      
        if (get.getStatusCode() == HttpStatus.SC_OK) {                     
            String respContentType = get.getResponseHeader("Content-Type").getValue(); 
            log.info("Request Content type [" +contentType + "] is not in response content type: [" + respContentType + "]");
            log.info(String.valueOf(contentType != null));
            log.info(String.valueOf(StringUtils.containsIgnoreCase(respContentType, contentType)));
            return contentType != null && StringUtils.containsIgnoreCase(respContentType, contentType);
        } else {
            log.error("Response status code KO: [" + get.getStatusCode() +"] from url: " + basicUrl + " with querystring: " + get.getQueryString());
        }
    } catch (Exception e) { 
        log.error("Unable to get http response from url: " + basicUrl + " with querystring: " + get.getQueryString() + ". Ex Msg:" + e.getMessage());
    } finally {
        get.releaseConnection();
    }

    return false;
}   

Content-type が 'pdf' の場合、2 番目の条件で false になりますが、どの Content-type を設定する必要があるかを知るにはどうすればよいですか? このログを取得します: Request Content type [pdf] is not in response content type: [text/plain;charset=UTF-8].

また、コンテンツ タイプのチェックをスキップして、すぐに PDF を要求しようとしましたが、しばらく待った後、開くことができない 16 KB の PDF が表示されます。コンテンツ タイプを text/plain;charset=UTF-8 に設定しようとしましたが、それでもログが表示されます。

PDFをダウンロードしているのでPDFではないでしょうか、それともPDFコンテンツタイプを期待するコードのどこかに設定する必要がありますか?

4

1 に答える 1