虚位以待(AD)
虚位以待(AD)
首页 > 网络编程 > JSP编程 > HttpClient Post 二进制/字节流/byte[]实例代码

HttpClient Post 二进制/字节流/byte[]实例代码
类别:JSP编程   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了 HttpClient Post 二进制 字节流 byte[]实例代码的相关资料,需要的朋友可以参考下

 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;
    }
    }

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

相关热词搜索: HttpClient Post 二进制 字节流 byte[] ja