分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
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;
- }
- }
- 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;
- }
- }