コード例 #1
0
  @Override
  public void sendRequest(final WXRequest request, final OnHttpListener listener) {
    if (listener != null) {
      listener.onHttpStart();
    }
    execute(
        new Runnable() {
          @Override
          public void run() {
            WXResponse response = new WXResponse();
            try {
              HttpURLConnection connection = openConnection(request, listener);
              Map<String, List<String>> headers = connection.getHeaderFields();
              int responseCode = connection.getResponseCode();
              if (listener != null) {
                listener.onHeadersReceived(responseCode, headers);
              }

              response.statusCode = String.valueOf(responseCode);
              if (responseCode >= 200 && responseCode <= 299) {
                response.originalData =
                    readInputStreamAsBytes(connection.getInputStream(), listener);
              } else {
                response.errorMsg = readInputStream(connection.getErrorStream(), listener);
              }
              if (listener != null) {
                listener.onHttpFinish(response);
              }
            } catch (IOException e) {
              e.printStackTrace();
              response.statusCode = "-1";
              response.errorCode = "-1";
              response.errorMsg = e.getMessage();
              if (listener != null) {
                listener.onHttpFinish(response);
              }
            }
          }
        });
  }