All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.weixin4j.miniprogram.http.Response Maven / Gradle / Ivy

The newest version!
/*
 * 微信公众平台(JAVA) SDK
 *
 * Copyright (c) 2014, Ansitech Network Technology Co.,Ltd All rights reserved.
 * 
 * http://www.weixin4j.org/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.weixin4j.miniprogram.http;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.weixin4j.miniprogram.WeixinException;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import javax.net.ssl.HttpsURLConnection;

/**
 * 

* Title: https的输出流

* *

* Description:

* * @author yangqisheng * @since 1.0.0 */ public class Response { private HttpsURLConnection https; private HttpURLConnection http; private int status; private InputStream is; private String responseAsString = null; private boolean streamConsumed = false; public Response() { } public Response(HttpsURLConnection https) throws IOException { this.https = https; this.status = https.getResponseCode(); if (null == (is = https.getErrorStream())) { is = https.getInputStream(); } } public Response(HttpURLConnection http) throws IOException { this.http = http; this.status = http.getResponseCode(); if (null == (is = http.getErrorStream())) { is = http.getInputStream(); } } /** * 转换为输出流 * * @return 输出流 */ public InputStream asStream() { if (streamConsumed) { throw new IllegalStateException("Stream has already been consumed."); } return is; } /** * 将输出流转换为String字符串 * * @return 输出内容 * @throws org.weixin4j.miniprogram.WeixinException 微信操作异常 */ public String asString() throws WeixinException { if (null == responseAsString) { BufferedReader br; try { InputStream stream = asStream(); if (null == stream) { return null; } br = new BufferedReader(new InputStreamReader(stream, "UTF-8")); StringBuilder buf = new StringBuilder(); String line; while (null != (line = br.readLine())) { buf.append(line).append("\n"); } this.responseAsString = buf.toString(); stream.close(); //输出流读取完毕,关闭连接 if (https != null) { https.disconnect(); } //输出流读取完毕,关闭连接 if (http != null) { http.disconnect(); } streamConsumed = true; } catch (NullPointerException npe) { // don't remember in which case npe can be thrown throw new WeixinException(npe.getMessage(), npe); } catch (IOException ioe) { throw new WeixinException(ioe.getMessage(), ioe); } } return responseAsString; } /** * 将输出流转换为JSON对象 * * @return JSONObject对象 * @throws org.weixin4j.miniprogram.WeixinException 微信操作异常 */ public JSONObject asJSONObject() throws WeixinException { return JSONObject.parseObject(asString()); } /** * 将输出流转换为JSON对象 * * @return JSONArray对象 * @throws org.weixin4j.miniprogram.WeixinException 微信操作异常 */ public JSONArray asJSONArray() throws WeixinException { return JSONArray.parseArray(asString()); } /** * 获取响应状态 * * @return 响应状态 */ public int getStatus() { return status; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy