java如何模拟发送格式的请求

  介绍

这篇文章主要讲解了java如何模拟发送格式的请求,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

我就废话不多说了,大家还是直接看代码吧!

包com.silot.test;
  
  进口org.apache.http.HttpResponse;
  进口org.apache.http.client.methods.HttpPost;
  进口org.apache.http.entity.mime.HttpMultipartMode;
  进口org.apache.http.entity.mime.MultipartEntity;
  进口org.apache.http.entity.mime.content.StringBody;
  进口org.apache.http.impl.client.DefaultHttpClient;
  
  进口java.io.BufferedReader;
  进口java.io.InputStream;
  进口java.io.InputStreamReader;
  进口charset;
  
  公开课TestCli
  {
  公共静态void main (String参数[])抛出异常
  {
  MultipartEntity MultipartEntity=new MultipartEntity (HttpMultipartMode。BROWSER_COMPATIBLE,“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 ea3fcae38ff", Charset.defaultCharset ());
  multipartEntity.addPart (“skey"新StringBody(“哈哈哈哈哈,,Charset.forName (“UTF-8")));
  multipartEntity.addPart (“operator"新StringBody(“啦啦啦啦“,Charset.forName (“UTF-8")));
  multipartEntity.addPart (“VrfKey"新StringBody(“渣渣渣“,Charset.forName (“UTF-8")));
  multipartEntity.addPart (“StatCode"新StringBody (“00”, Charset.forName (“UTF-8")));
  multipartEntity.addPart (“mass_id"新StringBody (“1234“, Charset.forName (“UTF-8")));
  multipartEntity.addPart (“reference_id"新StringBody (“21231544“, Charset.forName (“UTF-8")));
  
  HttpPost请求=new HttpPost (“http://xiefei.s1.natapp.cc/v1/withdrawCallback");
  request.setEntity (multipartEntity);
  request.addHeader (“Content-Type"“附加项:格式;边界=- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 ea3fcae38ff");
  
  DefaultHttpClient httpClient=new DefaultHttpClient ();
  HttpResponse响应=httpClient.execute(请求);
  
  .getContent InputStream是=response.getEntity () ();
  BufferedReader=新BufferedReader(新InputStreamReader(是));
  StringBuffer缓冲=new StringBuffer ();
  字符串行=?“;
  在((=in.readLine行())!=null)
  {
  buffer.append(线);
  }
  
  System.out.println(“发送消息收到的返回:“+ buffer.toString ());
  }
  }

<强> java模拟复杂表单后请求

java模拟复杂表单后请求

能支持文件上传

/* *   *支持复杂表单,比如文件上传   * @param formParam   * @return   * @throws例外   */公共静态字符串postWithForm (FormParam FormParam)抛出异常{   字符串url=formParam.getUrl ();   字符串charset=癠TF-8";   字符串边界=Long.toHexString (System.currentTimeMillis ());//生成一些独特的随机值。   字符串CRLF=癨 r \ n";//行分隔符所需的多部分/格式。      URLConnection连接=新网址(URL) .openConnection ();   connection.setDoOutput(真正的);   connection.setRequestProperty (“Content-Type",“多部分/格式;边界=?+边界);   试(   OutputStream输出=connection.getOutputStream ();   PrintWriter作家=new PrintWriter(新OutputStreamWriter(输出字符集),真的);   ) {//使身体参数   String> Map<字符串;bodyParam=formParam.getBodyParam ();   如果(零!=bodyParam) {   (字符串p: bodyParam.keySet ()) {   writer.append (“-”;+边界).append (CRLF);   writer.append(“附加项:格式;name=\““+ p +“\““) .append (CRLF);   writer.append(“内容类型:文本/平原;charset=?+字符集).append (CRLF);   writer.append (CRLF) .append (bodyParam.get (p)) .append (CRLF) .flush ();   }   }//发送文件。   File> Map<字符串;fileParam=formParam.getFileParam ();   如果(零!=fileParam) {   (字符串文件名:fileParam.keySet ()) {   writer.append (“-”;+边界).append (CRLF);   writer.append(“附加项:格式;name=\““+文件名+“\”;文件名=\”;“   + fileParam.get(文件名). getname () +“\““) .append (CRLF);   writer.append(“内容类型:“+ URLConnection.guessContentTypeFromName(文件名).append (CRLF);   writer.append (“Content-Transfer-Encoding: binary") .append (CRLF);   writer.append (CRLF) .flush ();   Files.copy (fileParam.get(文件名).toPath(),输出);   output.flush ();//重要的继续之前的作家!   writer.append (CRLF) .flush ();//CRLF很重要!它表明边界的结束。   }   }//多部分/格式。   writer.append (“-”;+边界+“——“).append (CRLF) .flush ();   }   HttpURLConnection康涅狄格州=(HttpURLConnection)连接;   布特ByteArrayOutputStream=new ByteArrayOutputStream ();   int len;   byte[]新字节缓冲区=[1024];   在((len=conn.getInputStream () .read(缓冲))!=1){   布特。写(缓冲区,0,len);   }   字符串的结果=新的字符串(bout.toByteArray (),“utf-8");   返回结果;   }

java如何模拟发送格式的请求