jodd.http.HttpRequest Java Examples

The following examples show how to use jodd.http.HttpRequest. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: JoddHttpMediaUploadRequestExecutor.java    From weixin-java-tools with Apache License 2.0 6 votes vote down vote up
@Override
public WxMediaUploadResult execute(String uri, File file) throws WxErrorException, IOException {
  HttpRequest request = HttpRequest.post(uri);
  if (requestHttp.getRequestHttpProxy() != null) {
    requestHttp.getRequestHttpClient().useProxy(requestHttp.getRequestHttpProxy());
  }
  request.withConnectionProvider(requestHttp.getRequestHttpClient());
  request.form("media", file);
  HttpResponse response = request.send();
  response.charset(StringPool.UTF_8);

  String responseContent = response.bodyText();
  WxError error = WxError.fromJson(responseContent);
  if (error.getErrorCode() != 0) {
    throw new WxErrorException(error);
  }
  return WxMediaUploadResult.fromJson(responseContent);
}
 
Example #2
Source File: MaterialDeleteJoddHttpRequestExecutor.java    From weixin-java-tools with Apache License 2.0 6 votes vote down vote up
@Override
public Boolean execute(String uri, String materialId) throws WxErrorException, IOException {
  HttpRequest request = HttpRequest.post(uri);
  if (requestHttp.getRequestHttpProxy() != null) {
    requestHttp.getRequestHttpClient().useProxy(requestHttp.getRequestHttpProxy());
  }
  request.withConnectionProvider(requestHttp.getRequestHttpClient());

  request.query("media_id", materialId);
  HttpResponse response = request.send();
  response.charset(StringPool.UTF_8);
  String responseContent = response.bodyText();
  WxError error = WxError.fromJson(responseContent, WxType.MP);
  if (error.getErrorCode() != 0) {
    throw new WxErrorException(error);
  } else {
    return true;
  }
}
 
Example #3
Source File: MaterialNewsInfoJoddHttpRequestExecutor.java    From weixin-java-tools with Apache License 2.0 6 votes vote down vote up
@Override
public WxMpMaterialNews execute(String uri, String materialId) throws WxErrorException, IOException {
  if (requestHttp.getRequestHttpProxy() != null) {
    requestHttp.getRequestHttpClient().useProxy(requestHttp.getRequestHttpProxy());
  }

  HttpRequest request = HttpRequest.post(uri)
    .withConnectionProvider(requestHttp.getRequestHttpClient())
    .body(WxGsonBuilder.create().toJson(ImmutableMap.of("media_id", materialId)));
  HttpResponse response = request.send();
  response.charset(StringPool.UTF_8);

  String responseContent = response.bodyText();
  this.logger.debug("响应原始数据:{}", responseContent);
  WxError error = WxError.fromJson(responseContent, WxType.MP);
  if (error.getErrorCode() != 0) {
    throw new WxErrorException(error);
  } else {
    return WxMpGsonBuilder.create().fromJson(responseContent, WxMpMaterialNews.class);
  }
}
 
Example #4
Source File: MaterialVideoInfoJoddHttpRequestExecutor.java    From weixin-java-tools with Apache License 2.0 6 votes vote down vote up
@Override
public WxMpMaterialVideoInfoResult execute(String uri, String materialId) throws WxErrorException, IOException {
  HttpRequest request = HttpRequest.post(uri);
  if (requestHttp.getRequestHttpProxy() != null) {
    requestHttp.getRequestHttpClient().useProxy(requestHttp.getRequestHttpProxy());
  }
  request.withConnectionProvider(requestHttp.getRequestHttpClient());

  request.query("media_id", materialId);
  HttpResponse response = request.send();
  response.charset(StringPool.UTF_8);
  String responseContent = response.bodyText();
  WxError error = WxError.fromJson(responseContent, WxType.MP);
  if (error.getErrorCode() != 0) {
    throw new WxErrorException(error);
  } else {
    return WxMpMaterialVideoInfoResult.fromJson(responseContent);
  }
}
 
Example #5
Source File: MediaImgUploadHttpRequestExecutor.java    From weixin-java-tools with Apache License 2.0 6 votes vote down vote up
@Override
public WxMediaImgUploadResult execute(String uri, File data) throws WxErrorException, IOException {
  if (data == null) {
    throw new WxErrorException(WxError.builder().errorCode(-1).errorMsg("文件对象为空").build());
  }

  HttpRequest request = HttpRequest.post(uri);
  if (requestHttp.getRequestHttpProxy() != null) {
    requestHttp.getRequestHttpClient().useProxy(requestHttp.getRequestHttpProxy());
  }
  request.withConnectionProvider(requestHttp.getRequestHttpClient());

  request.form("media", data);
  HttpResponse response = request.send();
  response.charset(StringPool.UTF_8);
  String responseContent = response.bodyText();
  WxError error = WxError.fromJson(responseContent, WxType.MP);
  if (error.getErrorCode() != 0) {
    throw new WxErrorException(error);
  }

  return WxMediaImgUploadResult.fromJson(responseContent);
}
 
Example #6
Source File: JoddHttpSimplePostRequestExecutor.java    From weixin-java-tools with Apache License 2.0 5 votes vote down vote up
@Override
public String execute(String uri, String postEntity) throws WxErrorException, IOException {
  HttpConnectionProvider provider = requestHttp.getRequestHttpClient();
  ProxyInfo proxyInfo = requestHttp.getRequestHttpProxy();

  HttpRequest request = HttpRequest.post(uri);
  if (proxyInfo != null) {
    provider.useProxy(proxyInfo);
  }
  request.withConnectionProvider(provider);
  if (postEntity != null) {
    request.bodyText(postEntity);
  }
  HttpResponse response = request.send();
  response.charset(StringPool.UTF_8);

  String responseContent = response.bodyText();
  if (responseContent.isEmpty()) {
    throw new WxErrorException(WxError.builder().errorCode(9999).errorMsg("无响应内容")
      .build());
  }

  if (responseContent.startsWith("<xml>")) {
    //xml格式输出直接返回
    return responseContent;
  }

  WxError error = WxError.fromJson(responseContent);
  if (error.getErrorCode() != 0) {
    throw new WxErrorException(error);
  }
  return responseContent;
}
 
Example #7
Source File: Mails.java    From symphonyx with Apache License 2.0 5 votes vote down vote up
/**
 * Sends mail by SendClound.
 *
 * @param toMails to mails
 * @param templateName template name
 * @param subject subject
 * @param variables template variables
 */
public static void send(final String subject, final String templateName,
        final List<String> toMails, final Map<String, List<String>> variables) {
    if (null == toMails || toMails.isEmpty()) {
        return;
    }

    try {
        final Map<String, Object> formData = new HashMap<String, Object>();

        formData.put("api_user", API_USER);
        formData.put("api_key", API_KEY);
        formData.put("from", "admin@" + Latkes.getServerHost());
        formData.put("fromname", "Sym");
        formData.put("subject", subject);
        formData.put("template_invoke_name", templateName);

        final JSONObject args = new JSONObject();
        args.put("to", new JSONArray(toMails));
        final JSONObject sub = new JSONObject();
        args.put("sub", sub);
        for (final Map.Entry<String, List<String>> var : variables.entrySet()) {
            final JSONArray value = new JSONArray(var.getValue());
            sub.put(var.getKey(), value);
        }
        formData.put("substitution_vars", args.toString());
        formData.put("resp_email_id", "true");

        final HttpResponse response = HttpRequest.post("http://sendcloud.sohu.com/webapi/mail.send_template.json")
                .form(formData).send();

        LOGGER.log(Level.INFO, response.bodyText());
    } catch (final Exception e) {
        LOGGER.log(Level.ERROR, "Send mail error", e);
    }
}
 
Example #8
Source File: HttpRequestUtil.java    From PatatiumAppUi with GNU General Public License v2.0 5 votes vote down vote up
/**
 * get请求
 * @param url url地址
 * @param  host 主机地址/根域名
 * @param param 参数
 * @return
 */
public  Result doGet(String host,String url,Map<String,String>param)
{
    //Map<String,Object> result=new HashMap<>();
    Result result=new Result();
    long responseTime=0;
    long startTime=0;
    long endTime=0;
    startTime=System.currentTimeMillis();
    HttpResponse httpResponse= HttpRequest.get(host+url).query(param).send();
    String statusCode="";
    String responseText="";
    String responseHeader="";
    String requestHeader="";
    endTime=System.currentTimeMillis();
    //获取响应时间
    responseTime=endTime-startTime;
    //获取响应字符串
    responseText=httpResponse.bodyText();
    //获取返回请求状态码
    statusCode=Long.toString(httpResponse.statusCode());
    //获取响应头
    responseHeader=httpResponse.headers().toString();
    //获取请求头
    requestHeader=httpResponse.getHttpRequest().headers().toString();
    result.setResult("statusCode",statusCode);

    result.setResult("responseText",responseText);
    //请求开始时间
    result.setResult("startTime",startTime);
    //请求结束时间
    result.setResult("endTime",endTime);

    result.setResult("responseTime",responseTime);
    //获取header头
    result.setResult("headerText",responseHeader);
    return result;

}
 
Example #9
Source File: JoddHttpMediaDownloadRequestExecutor.java    From weixin-java-tools with Apache License 2.0 5 votes vote down vote up
@Override
public File execute(String uri, String queryParam) throws WxErrorException, IOException {
  if (queryParam != null) {
    if (uri.indexOf('?') == -1) {
      uri += '?';
    }
    uri += uri.endsWith("?") ? queryParam : '&' + queryParam;
  }

  HttpRequest request = HttpRequest.get(uri);
  if (requestHttp.getRequestHttpProxy() != null) {
    requestHttp.getRequestHttpClient().useProxy(requestHttp.getRequestHttpProxy());
  }
  request.withConnectionProvider(requestHttp.getRequestHttpClient());

  HttpResponse response = request.send();
  response.charset(StringPool.UTF_8);

  String contentType = response.header("Content-Type");
  if (contentType != null && contentType.startsWith("application/json")) {
    // application/json; encoding=utf-8 下载媒体文件出错
    throw new WxErrorException(WxError.fromJson(response.bodyText()));
  }

  String fileName = new HttpResponseProxy(response).getFileName();
  if (StringUtils.isBlank(fileName)) {
    return null;
  }

  try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
    return FileUtils.createTmpFile(inputStream,
      FilenameUtils.getBaseName(fileName),
      FilenameUtils.getExtension(fileName),
      super.tmpDirFile);
  }
}
 
Example #10
Source File: WxPayServiceJoddHttpImpl.java    From weixin-java-tools with Apache License 2.0 5 votes vote down vote up
@Override
public byte[] postForBytes(String url, String requestStr, boolean useKey) throws WxPayException {
  try {
    HttpRequest request = this.buildHttpRequest(url, requestStr, useKey);
    byte[] responseBytes = request.send().bodyBytes();
    final String responseString = Base64.encodeToString(responseBytes);
    this.log.info("\n【请求地址】:{}\n【请求数据】:{}\n【响应数据(Base64编码后)】:{}", url, requestStr, responseString);
    wxApiData.set(new WxPayApiData(url, requestStr, responseString, null));
    return responseBytes;
  } catch (Exception e) {
    this.log.error("\n【请求地址】:{}\n【请求数据】:{}\n【异常信息】:{}", url, requestStr, e.getMessage());
    wxApiData.set(new WxPayApiData(url, requestStr, null, e.getMessage()));
    throw new WxPayException(e.getMessage(), e);
  }
}
 
Example #11
Source File: MaterialVoiceAndImageDownloadJoddHttpRequestExecutor.java    From weixin-java-tools with Apache License 2.0 5 votes vote down vote up
@Override
public InputStream execute(String uri, String materialId) throws WxErrorException, IOException {
  HttpRequest request = HttpRequest.post(uri);
  if (requestHttp.getRequestHttpProxy() != null) {
    requestHttp.getRequestHttpClient().useProxy(requestHttp.getRequestHttpProxy());
  }
  request.withConnectionProvider(requestHttp.getRequestHttpClient());

  request.query("media_id", materialId);
  HttpResponse response = request.send();
  response.charset(StringPool.UTF_8);
  try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
    // 下载媒体文件出错
    byte[] responseContent = IOUtils.toByteArray(inputStream);
    String responseContentString = new String(responseContent, StandardCharsets.UTF_8);
    if (responseContentString.length() < 100) {
      try {
        WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class);
        if (wxError.getErrorCode() != 0) {
          throw new WxErrorException(wxError);
        }
      } catch (com.google.gson.JsonSyntaxException ex) {
        return new ByteArrayInputStream(responseContent);
      }
    }
    return new ByteArrayInputStream(responseContent);
  }
}
 
Example #12
Source File: QrCodeJoddHttpRequestExecutor.java    From weixin-java-tools with Apache License 2.0 5 votes vote down vote up
@Override
public File execute(String uri, WxMpQrCodeTicket ticket) throws WxErrorException, IOException {
  if (ticket != null) {
    if (uri.indexOf('?') == -1) {
      uri += '?';
    }
    uri += uri.endsWith("?")
      ? "ticket=" + URLEncoder.encode(ticket.getTicket(), "UTF-8")
      : "&ticket=" + URLEncoder.encode(ticket.getTicket(), "UTF-8");
  }

  HttpRequest request = HttpRequest.get(uri);
  if (requestHttp.getRequestHttpProxy() != null) {
    requestHttp.getRequestHttpClient().useProxy(requestHttp.getRequestHttpProxy());
  }
  request.withConnectionProvider(requestHttp.getRequestHttpClient());

  HttpResponse response = request.send();
  response.charset(StringPool.UTF_8);
  String contentTypeHeader = response.header("Content-Type");
  if (MimeTypes.MIME_TEXT_PLAIN.equals(contentTypeHeader)) {
    String responseContent = response.bodyText();
    throw new WxErrorException(WxError.fromJson(responseContent, WxType.MP));
  }
  try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
    return FileUtils.createTmpFile(inputStream, UUID.randomUUID().toString(), "jpg");
  }
}
 
Example #13
Source File: WxPayServiceJoddHttpImpl.java    From weixin-java-tools with Apache License 2.0 5 votes vote down vote up
@Override
public String post(String url, String requestStr, boolean useKey) throws WxPayException {
  try {
    HttpRequest request = this.buildHttpRequest(url, requestStr, useKey);
    String responseString = this.getResponseString(request.send());

    this.log.info("\n【请求地址】:{}\n【请求数据】:{}\n【响应数据】:{}", url, requestStr, responseString);
    wxApiData.set(new WxPayApiData(url, requestStr, responseString, null));
    return responseString;
  } catch (Exception e) {
    this.log.error("\n【请求地址】:{}\n【请求数据】:{}\n【异常信息】:{}", url, requestStr, e.getMessage());
    wxApiData.set(new WxPayApiData(url, requestStr, null, e.getMessage()));
    throw new WxPayException(e.getMessage(), e);
  }
}
 
Example #14
Source File: HttpRequestUtil.java    From PatatiumAppUi with GNU General Public License v2.0 4 votes vote down vote up
public Result doPost(String host,String url,String bodyJsonParams,Map<String, String> headerParams){
    Result result=new Result();
    long  responseTime=0;//响应时间
    long startTime=0;//开始请求时间
    long endTime=0;//结束请求时间
    String statusCode="";
    String responseText="";
    String requestHeader="";
    HttpRequest httpRequest= new HttpRequest().post(host+url);
    if (!headerParams.isEmpty())
    {
        for (Map.Entry<String,String> entry:headerParams.entrySet())
        {
            httpRequest.header(entry.getKey(),entry.getValue());
        }
    }
    //body参数
    if (!bodyJsonParams.isEmpty())
    {
        httpRequest.body(bodyJsonParams);
    }
    try {
        //开始发送post请求时间
        startTime=System.currentTimeMillis();
        HttpResponse httpResponse=httpRequest.send();
        //结束post请求时间
        endTime=System.currentTimeMillis();
        //响应时间
        responseTime=endTime-startTime;
        requestHeader=httpResponse.getHttpRequest().headers().toString();
        statusCode=Long.toString(httpResponse.statusCode());
        responseText=httpResponse.bodyText();
        //获取返回请求状态码
        result.setResult("statusCode",statusCode);
        //获取body响应字符串
        result.setResult("responseText",responseText);
        //请求开始时间
        result.setResult("startTime",startTime);
        //请求结束时间
        result.setResult("endTime",endTime);
        //获取响应时间
        result.setResult("responseTime",responseTime);
        //获取header头
        result.setResult("headerText",httpResponse.headers().toString());

    }catch (Exception e) {
        System.out.println("发送post请求失败!");
        e.printStackTrace();
    }
    return result;



}
 
Example #15
Source File: HttpRequestUtil.java    From PatatiumAppUi with GNU General Public License v2.0 4 votes vote down vote up
/**
 * 不带安全认证参数post请求
 * @param url url地址
 * @param bodyParams body参数
 * @param headerParams 头参数
 * @return 返回包含响应时间,响应状态码,响应字符串数据信息的Map
 */
public Result dopost(String host,String url, Map<String,Object> bodyParams, Map<String, String> headerParams)
{
    //Map<String,Object> result=new HashMap<>();
    String requestHeader="";
    Result result=new Result();
    long  responseTime=0;//响应时间
    long startTime=0;//开始请求时间
    long endTime=0;//结束请求时间
    String statusCode="";
    String responseText="";
    HttpRequest httpRequest= new HttpRequest().post(host+url);
    //header头参数
    if (!headerParams.isEmpty())
    {
        for (Map.Entry<String,String> entry:headerParams.entrySet())
        {
            httpRequest.header(entry.getKey(),entry.getValue());
        }
    }
    //body参数
    if (!bodyParams.isEmpty())
    {
        httpRequest.form(bodyParams);
    }
    try {
        startTime=System.currentTimeMillis();
        HttpResponse httpResponse=httpRequest.send();
        endTime=System.currentTimeMillis();
        responseTime=endTime-startTime;
        responseText=httpResponse.bodyText();
        statusCode=Long.toString(httpResponse.statusCode());
        //获取请求头
        requestHeader=httpResponse.getHttpRequest().headers().toString();
        //获取返回请求状态码
        result.setResult("statusCode",statusCode);
        //获取响应字符串
        result.setResult("responseText",responseText);
        //请求开始时间
        result.setResult("startTime",startTime);
        //请求结束时间
        result.setResult("endTime",endTime);
        //获取响应时间
        result.setResult("responseTime",responseTime);
        //获取响应header头
        result.setResult("headerText",httpResponse.headers().toString());

    }catch (Exception e) {
        System.out.println("发送post请求失败!");
        e.printStackTrace();
    }
    return result;

}
 
Example #16
Source File: HttpRequestUtil.java    From PatatiumAppUi with GNU General Public License v2.0 4 votes vote down vote up
/**
 * 不带安全认证/头参数post请求(只需填写body参数)
 * @param url url地址
 * @param host 主机地址/根域名
 * @param bodyParams body请求参数
 * @return  返回包含响应时间,响应状态码,响应字符串数据信息的Map
 */
public Result dopost(String host,String url, Map<String,Object> bodyParams)
{
    //Map<String,Object> result=new HashMap<>();
    String requestHeader="";
    Result result=new Result();
    long  responseTime=0;//响应时间
    long startTime=0;//开始请求时间
    long endTime=0;//结束请求时间
    HttpRequest httpRequest= new HttpRequest().post(host+url);
    String statusCode="";
    String responseText="";
    //body参数
    if (!bodyParams.isEmpty())
    {
        httpRequest.form(bodyParams);
    }
    try {
        startTime=System.currentTimeMillis();
        HttpResponse httpResponse=httpRequest.send();
        endTime=System.currentTimeMillis();
        responseTime=endTime-startTime;
        responseText=httpResponse.bodyText();
        statusCode=Long.toString(httpResponse.statusCode());
        //获取请求头
        requestHeader=httpResponse.getHttpRequest().headers().toString();
        //获取返回请求状态码
        result.setResult("statusCode",httpResponse.statusCode());
        //获取响应字符串
        result.setResult("responseText",httpResponse.bodyText());
        //请求开始时间
        result.setResult("startTime",startTime);
        //请求结束时间
        result.setResult("endTime",endTime);
        //获取响应时间
        result.setResult("responseTime",responseTime);

    }catch (Exception e) {
        System.out.println("发送post请求失败!");
        e.printStackTrace();
    }
    return result;

}
 
Example #17
Source File: HttpRequestUtil.java    From PatatiumAppUi with GNU General Public License v2.0 4 votes vote down vote up
/**
 * 不带任何参数的post请求
 * @param url url地址+
 * @param  host 主机地址/根域名
 * @return 返回包含响应时间,响应状态码,响应字符串数据信息的Map
 */
public Result dopost(String host,String url)
{
    //Map<String,Object> result=new HashMap<>();
    String bodyParams="";
    Result result=new Result();
    long  responseTime=0;//响应时间
    long startTime=0;//开始请求时间
    long endTime=0;//结束请求时间
    HttpRequest httpRequest= new HttpRequest().post(host+url);
    String statusCode="";
    String responseText="";
    String responseHeader="";
    String requestHeader="";
    try {
        startTime=System.currentTimeMillis();
        HttpResponse httpResponse=httpRequest.send();
        endTime=System.currentTimeMillis();
        //请求开始时间
        result.setResult("startTime",startTime);
        //请求结束时间
        result.setResult("endTime",endTime);
        //获取响应时间
        responseTime=endTime-startTime;
        //获取响应字符串
        responseText=httpResponse.bodyText();
        //获取返回请求状态码
        statusCode=Long.toString(httpResponse.statusCode());
        //获取响应header头
        responseHeader=httpResponse.headers().toString();
        //获取请求头
        requestHeader=httpResponse.getHttpRequest().headers().toString();
        result.setResult("statusCode",statusCode);
        result.setResult("responseText",responseText);
        result.setResult("responseTime",responseTime);
        result.setResult("headerText",responseHeader);
        bodyParams=httpRequest.bodyText();

    }catch (Exception e) {
        System.out.println("发送post请求失败!");
        e.printStackTrace();
    }
    return result;

}