javapost文件
㈠ java 接口调用,根据接口文档写测试,用post方法,刚怎么做啊,有个完整的例子么
可使用android自带的httpclient框架实现。
1. GET 方式传递参数
//先将参数放入List,再对参数进行URL编码
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "数据")); //增加参数1
params.add(new BasicNameValuePair("param2", "value2"));//增加参数2
String param = URLEncodedUtils.format(params, "UTF-8");//对参数编码
String baseUrl = "服务器接口完整URL";
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);//将URL与参数拼接
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //发起GET请求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//获取服务器响应内容
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
2. POST方式 方式传递参数
//和GET方式一样,先将参数放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));//增加参数1
params.add(new BasicNameValuePair("param2", "第二个参数"));//增加参数2
try {
HttpPost postMethod = new HttpPost(baseUrl);//创建一个post请求
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //执行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //获取响应内容
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
㈡ java http post 怎么设置 raw格式
调试微信推广支持中二维码生成api的接口,使用chrome浏览器的postman插件,post请求时有一个选项是form-data,或者raw,使用raw可以请求成功,from-data不知道怎么组装key和value所以一直失败。非常不明白raw是什么意思,google网络都没有相关的解释。后来研究发现,其实raw方式使用的是纯字符串的数据上传方式,所以在POST之前,可能需要手工的把一些json/text/xml格式的数据转换成字符串,是一种post原始请求,区别于form-data这种常用的key-value方式。
public static String result; public static void httpTest() throws ClientProtocolException, IOException { String token = "XRhjxAJZG3rFlPLg"; String url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + token; String json = "{"action_name":"QR_LIMIT_SCENE","action_info":{"scene":{"scene_id":234}}}"; HttpClient httpClient = new DefaultHttpClient(); HttpPost post = new HttpPost(url); StringEntity postingString = new StringEntity(json);// json传递 post.setEntity(postingString); post.setHeader("Content-type", "application/json"); HttpResponse response = httpClient.execute(post); String content = EntityUtils.toString(response.getEntity()); // Log.i("test",content); System.out.println(content); result = content; }
以上代码中需要导入
import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils;
Android中自带org.apache.http相关库文件,所以可以快捷键(ctrl+shift+o)一次导入成功。
㈢ 如何在java中发送post请求
package com.test;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class D {
public static void main(String[] args){
List<NameValuePair> nvps= new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("id", "1"));
String url="https://www.hao123.com/";
HttpClient httpClient = null;
String response="";
try {
HttpPost post = new HttpPost(url);
post.setHeader("Connection", "close");
httpClient = new DefaultHttpClient();
post.setEntity(new UrlEncodedFormEntity(nvps));
HttpResponse httpres= httpClient.execute(post);
if (httpres.getStatusLine().getStatusCode() >= 300) {
System.out.println("Request Failed,Code:" + httpres.getStatusLine().getStatusCode() + ",URL:" + url);
}
response = EntityUtils.toString(httpres.getEntity(), "utf-8");
}catch(Exception e){
e.printStackTrace();
}finally{
if(httpClient!=null){
httpClient.getConnectionManager().shutdown();
}
}
System.out.println(response);
}
}
需要httpclient-4.1.3.jar,httpcore-4.1.4.jar和commons-logging-1.1.1.jar
㈣ java中用一段代码模拟post提交文件后,再写个java程序接收这个文件,高分急求,坐等
在JAVA里面模拟HTTP访问可以使用很多开源的框架,apache的httpclient就很好用,可以模拟使用GET和POST提交方式,至于PHP吗,这个我就没有研究过了
㈤ JAVA WEB 的get和post分别是什么格式
GET 是在URL路径直接拼接参数的形式进行的实现,也就是说数据是暴露在请求地址的,并且长度不能太长,通常文件流等实现起来有困难。
POST是只能看见请求的地址,其余的参数是直接在浏览器内部进行的显示和响应,数据相对来说是不暴露的,更安全一些,并且可以传输大量数据。
备注:通过以上说明,推荐实际应用中用Post请求进行开发。
㈥ 求POST上传文件的代码
使用smartuplaod组件的 部分代码 原因很简单 这里发不完全部的
uploadFile.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="com.jspsmart.upload.*"%>
<%
// 设定请求编码方式,否则遇到中文就会乱码
request.setCharacterEncoding("gb2312");
%>
<html>
<head>
<title>上传文件实例</title>
</head>
<body>
<h2>上传文件实例</h2>
<hr>
请选择上传文件数量:
<select id="number" onchange="buildFileInput()">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
<form name="form1" enctype="multipart/form-data" action="upload_do.jsp" method="post">
<div id="files"></div>
<input type="submit" name="Submit" value="提交" />
</form>
</body>
<script language="javascript">
//根据选择的文件数量构造文件输入框列表
function buildFileInput(){
//取得文件数量下拉列表值
var num = document.all.number.value;
//将现有的文件输入框清除
clearFileInput();
//构造出新的文件输入框列表
for (var i=0;i<num;i++){
//创建一个div标签节点
filediv = document.createElement("div");
//创建一个文本节点
labeltext = document.createTextNode("第"+(i+1)+"个文件:");
//创建一个文件输入框节点
fileinput = document.createElement("input");
fileinput.type = "file";
fileinput.name = "file"+i;
//创建一个文本节点
memotext = document.createTextNode(" 第"+(i+1)+"个文件备注:");
//创建一个文本输入框节点
memoinput = document.createElement("input");
memoinput.type = "text";
memoinput.name = "memo"+i;
//将文本节点追加成div标签节点的子节点
filediv.appendChild(labeltext);
//将文件输入框节点追加成div标签节点的子节点
filediv.appendChild(fileinput);
//将文本节点追加成div标签节点的子节点
filediv.appendChild(memotext);
//将文本输入框节点追加成div标签节点的子节点
filediv.appendChild(memoinput);
//将div标签节点追加成files的子节点
document.all.files.appendChild(filediv);
}
}
//将现有的文件输入框清除
function clearFileInput(){
while (document.all.files.childNodes.length>0)
document.all.files.removeChild(document.all.files.childNodes[0]);
}
//初始化文件输入框列表
buildFileInput();
</script>
</html>
㈦ java代码发送post请求,并接收xml文件。。。 发送请求时要带参数
用ajax来发送,ajax返回的就是xml或者json.
㈧ java http post 同时发送文件流与数据
您好,提问者:
首先表单、文件同时发送那么肯定是可以的,关于获取的话很难了,因为发送文件的话form必须设置为:multipart/form-data数据格式,默认为:application/x-www-form-urlencoded表单格式。我们称之为二进制流和普通数据流。
刚才说了<form的entype要改为multipart/form-data才能进行发送文件,那么这个时候你表单的另外数据就也会被当成二进制一起发送到服务端。
获取读取过来的内容如下:
//拿到用户传送过来的字节流
InputStreamis=request.getInputStream();
byte[]b=newbyte[1024];
intlen=0;
while((len=is.read(b))!=-1){
System.out.println(newString(b,0,len));
}
上面如图的代码,我们发现发送过来的表单数据跟文件数据是混乱的,我们根本没办法解析(很麻烦),这个时候我们就需要用到第三方辅助(apache 提供的fileupload.jar)来进行获取。
这个网上有很多代码的,如果有什么不明白可以去自行网络,或者追问,我这里只是给你提供的思路,希望理解,谢谢!
㈨ java后台post方法上传文件
/** * 执行post请求并将返回内容转为json格式返回 */public static JsonObject doPost(String url, JsonObject message)throws WeiXinException {JsonObject jo = null;PrintWriter out = null;InputStream in = null;try {if (url.startsWith("https")){//https方式提交需要SSLContext sc = SSLContext.getInstance("SSL");sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },new java.security.SecureRandom());URL console = new URL(url);HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();conn.setSSLSocketFactory(sc.getSocketFactory());conn.setHostnameVerifier(new TrustAnyHostnameVerifier());conn.connect();in = conn.getInputStream();}else{in = new URL(url).openStream();}// 打开和URL之间的连接URLConnection conn = new URL(url).openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(message.toString());// flush输出流的缓冲out.flush();// POST请求out.flush();out.close();in = conn.getInputStream();jo = JSON.parse(getContext(in));doExeption(jo);} catch (MalformedURLException e) {e.printStackTrace();} catch (ProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (KeyManagementException e) {e.printStackTrace();} catch (NoSuchAlgorithmException e) {e.printStackTrace();} finally {if (out != null) {out.flush();out.close();}if (in != null ){try {in.close();} catch (IOException e) {e.printStackTrace();}}}return jo;}