首页 > 开发 > JSP > 正文

HttpClient Post 二进制/字节流/byte[]实例代码

2019-10-27 17:58:29
字体:
来源:转载
供稿:网友

 java/221602.html">HttpClient Post 二进制/字节流/byte[]实例代码

HttpClient 3.x

public class HttpHelper {   String m_url;   HttpClient m_HttpClient;    public HttpHelper(String url) {     m_url = url;     m_HttpClient = new HttpClient();   }    public byte[] post(byte[] bytes, String contentType) throws IOException {     PostMethod method = new PostMethod(m_url);      if ((contentType != null) && (contentType.length() > 0))       method.setRequestHeader("Content-type" , contentType);     method.setRequestEntity(new ByteArrayRequestEntity(bytes));     int HttpCode = m_HttpClient.executeMethod(method);     if (HttpCode != HttpStatus.SC_OK)       throw new IOException("Invalid HttpStatus: " + HttpCode);     InputStream respStream = method.getResponseBodyAsStream();     int respBodySize = respStream.available();     if (respBodySize <= 0)       throw new IOException("Invalid respBodySize: " + respBodySize);     byte[] respBuffer = new byte[respBodySize];     if (respStream.read(respBuffer) != respBodySize)       throw new IOException("Read respBody Error");     return respBuffer;   }    public String postXml(String str) throws IOException {     byte[] reqBuffer = str.getBytes(Charset.forName("UTF-8"));     byte[] respBuffer = post(reqBuffer, "application/xml; charset=UTF-8");     String resp = new String(respBuffer, Charset.forName("UTF-8"));     return resp;   } } 

HttpClient 4.x

public class HttpHelper {   CloseableHttpClient m_HttpClient;    public HttpHelper() {     m_HttpClient = HttpClients.createDefault();   }    // send bytes and recv bytes   public byte[] post(String url, byte[] bytes, String contentType) throws IOException {     HttpPost httpPost = new HttpPost(url);     httpPost.setEntity(new ByteArrayEntity(bytes));     if (contentType != null)       httpPost.setHeader("Content-type", contentType);     CloseableHttpResponse httpResponse = m_HttpClient.execute(httpPost);     try {       HttpEntity entityResponse = httpResponse.getEntity();       int contentLength = (int) entityResponse.getContentLength();       if (contentLength <= 0)         throw new IOException("No response");       byte[] respBuffer = new byte[contentLength];       if (entityResponse.getContent().read(respBuffer) != respBuffer.length)         throw new IOException("Read response buffer error");       return respBuffer;     } finally {       httpResponse.close();     }   }    public byte[] post(String url, byte[] bytes) throws IOException {     return post(url, bytes, null);   }    public String postXml(String url, String str) throws IOException {     byte[] reqBuffer = str.getBytes(Charset.forName("UTF-8"));     byte[] respBuffer = post(url, reqBuffer, "application/xml; charset=UTF-8");     String resp = new String(respBuffer, Charset.forName("UTF-8"));     return resp;   } } 

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


注:相关教程知识阅读请移步到JSP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表