java httpclient multipart/form-data 方式post


設置header后調用

服務端報錯:org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found

去掉請求頭既可

/**
     * multipart/form-data
     * @param map
     * @param url
     * @param charset
     * @return
     */
    public String requestByPostParts(Map<String,Object> map, String url,String charset) {
        HttpClient httpClient = CustomHttpClient.GetHttpClient();//從連接池中獲取
        HttpPost post = new HttpPost(url);
        //post.setHeader("Content-Type", "multipart/form-data");//去掉Header
        BufferedReader br = null;
        try
        {
            MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
            multipartEntityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
            if(map!=null) {
                Iterator iter = map.entrySet().iterator();
                while(iter.hasNext()){
                    Map.Entry entry = (Map.Entry) iter.next();
                    String key = (String) entry.getKey();
                    String value = (String) entry.getValue();
                    multipartEntityBuilder.addTextBody(key,value);
                }
            }
            HttpEntity httpEntity=multipartEntityBuilder.build();
            // 設置請求參數
            post.setEntity(httpEntity);
            // 發起交易
            HttpResponse resp = httpClient.execute(post);
            int ret = resp.getStatusLine().getStatusCode();
            // 響應分析
            HttpEntity entity = resp.getEntity();
            br = new BufferedReader(new InputStreamReader(entity.getContent(), charset));
            StringBuffer responseString = new StringBuffer();
            String result = br.readLine();
            while (result != null)
            {
                responseString.append(result);
                result = br.readLine();
            }
            return responseString.toString();
        } catch (Exception e)
        {
            log.error(e.getMessage(), e);
            return "";
        } finally
        {
            if (br != null)
            {
                try
                {
                    br.close();
                } catch (IOException e)
                {
                    log.error(e.getMessage(), e);
                }
            }
        }
    }

問題的原因:頭部會自動加好,不要畫足添蛇。

http://stackoverflow.com/questions/17415084/multipart-data-post-using-Python-requests-no-multipart-boundary-was-found


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM