比如这样的一个api,java怎么获得数据
上传订单备注
简要描述:
用户上传订单备注
请求URL:
app-admin-SetMessage
请求方式:
get
参数:
参数名 必选 类型 说明
token 是 string 验证
id 是 string 订单id
msg 是 string 备注内容 最大文本长度 30
返回示例
{
"msg": 1,//0 失败
"data": '更新成功',
}
能写详细一点最好了,写个注释吧大神,小白看不明白
java接口:大致如下
/**
* 用户上传订单备注
* @param token 必传 验证
* @param id 必传 订单id
* @param msg 必传 备注内容 最大文本长度 30
* @return
*/
@RequestMapping("/app-admin-SetMessage")
@ResponseBody
public Order app_admin_SetMessage(@RequestParam(value = "token" ,required = true) String token,@RequestParam(value = "id" ,required = true) String id,@RequestParam(value = "msg" ,required = true) String msg){
Order order=new Order();
boolean flag=false; //操作是否成功标志
//写你的操作,此处省略...
if(flag){
order.setMsg(1); //操作成功
order.setData("更新成功!");
}else{
order.setMsg(0); //操作失败
order.setData("更新失败!");
}
return order; //返回订单信息
}
js:
$.ajax({
url: "/app-admin-SetMessage?token="+token+"&id="+id+"&msg="+msg,
dataType: "json",
success: function(order) {
if(order.msg === 1) {
alert(order.data);
} else {
alert(order.data);
}
},
error: function() {
alert("error");
}
});
这个ajax里面的token等参数需要你在这个function前面定义并获取,不然会报错。
其次,我这里返回的是order对象,如果你的order对象里面没有msg及data这两个参数,你可以把它们放到一个map里面,然后返回这个map。接口前面必须要加上@ResponseBody注解,不懂这个注解可以百度.
就直接ajax get请求这个api 的地址就可以了,后台不管是msg、data,
统统打包到封装到一个自定义的类里面去,直接返回,在回调中获取就可以了
message : success
我比较小白啊,大神们有完整代码能给我做参考的吗,要是觉得这个悬赏太少了我可以直接红包
直接在controller 注入该类,或者new该类,调用该类的方法就行了,
发一个http请求过去,带上参数就可以了,和我们在浏览器上访问资源是一样的 只是它返回的是json格式的数据而已
下面给你两个方法,
public static String do_post(String url, List name_value_pair) throws IOException {
String body = "{}";
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpPost httpost = new HttpPost(url);
httpost.setEntity(new UrlEncodedFormEntity(name_value_pair, StandardCharsets.UTF_8));
HttpResponse response = httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
body = EntityUtils.toString(entity);
} finally {
httpclient.getConnectionManager().shutdown();
}
return body;
}
public static String do_get(String url) throws ClientProtocolException, IOException {
String body = "{}";
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
body = EntityUtils.toString(entity);
} finally {
httpclient.getConnectionManager().shutdown();
}
return body;
}
传json字符串,后台解析成对象就好
给你参考一下这个,希望对你有用
$.ajax({
method: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
你可以这样。现在聚合数据申请一个数据接口,自己先试试,聚合数据都提供示例代码。这种获取接口里面数据都不难,传递的数据类型一般都是json,有什么搞不定的,我们可以在一起讨论。
$.ajax({
method: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
仅供参考
package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; public class HttpRequest { /** 向指定URL发送GET方法的请求 @param url 发送请求的URL @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 @return URL 所代表远程资源的响应结果 / public static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } /** 向指定 URL 发送POST方法的请求 @param url 发送请求的 URL @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 @return 所代表远程资源的响应结果 / public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.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(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; } } 调用方法: public static void main(String[] args) { //发送 GET 请求 String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456"); System.out.println(s); //发送 POST 请求 String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456"); System.out.println(sr); }
http请求啊!
String str="";
GetMethod get = new GetMethod(url);
int status = client.executeMethod(get);
str=get.getResponseBodyAsString();
为你写了一个demo:
/**
* 向指定URL发送GET方法的请求
*
* @param url
* 发送请求的URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return URL 所代表远程资源的响应结果
/
public static String sendGet(String url, String param) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map> map = connection.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
public static void main(String[] args) {
String token = "11";
String id = "123";
String msg = "xxxx";
String parmas;
Map map = new HashMap();
map.put("token", token);
map.put("id", id);
map.put("msg", msg);
sendGet("自己填url", prepareMap(map));
}
public static String prepareMap(Map<String, String> map) {
String result = "";
for (Map.Entry<String, String> stringIntegerEntry : map.entrySet()) {
String key = stringIntegerEntry.getKey();
String value = stringIntegerEntry.getValue();
result = result.concat(key).concat("=").concat(value).concat("&");
}
int index = result.lastIndexOf("&");
result = result.substring(0, index);
return result;
}
生成记事本或者excell文件
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class HttpRequest {
/**
向指定URL发送GET方法的请求
@param url
发送请求的URL
@param param
请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
@return URL 所代表远程资源的响应结果
/
public static String sendGet(String url, String param) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map> map = connection.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
/**
向指定 URL 发送POST方法的请求
@param url
发送请求的 URL
@param param
请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
@return 所代表远程资源的响应结果
/
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.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(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return result;
}
}
调用方法:
public static void main(String[] args) {
//发送 GET 请求
String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");
System.out.println(s);
//发送 POST 请求
String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
System.out.println(sr);
}
你是前台页面获取?还是在后台获取?
前台用ajax,前面已经回答了我就给你个后台代码示例:
package com.iflytek.view;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
/**
Created by silenceViking on 2017/10/31.
*/
public class ttt {
public static String readParse(String urlPath) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int len = 0;
URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream inStream = conn.getInputStream();
while ((len = inStream.read(data)) != -1) {
outStream.write(data, 0, len);
}
inStream.close();
System.out.println("" +outStream.toByteArray());
byte[] bb=outStream.toByteArray();
return new String(outStream.toByteArray());//通过out.Stream.toByteArray获取到写的数据
}
public static void main(String[] args) throws Exception {
//改成你要获取的api地址
String url="http://118.190.204.208/Service1.svc/GetMenu?json=,idd22ltime2017/10/31%209:26:56";
String str=readParse(url);
ByteArrayInputStream bis=new ByteArrayInputStream(str.getBytes());
ByteArrayOutputStream bos=new ByteArrayOutputStream();
int temp=0;
while((temp=bis.read())!=-1){
char c=(char)temp;
bos.write(Character.toLowerCase(c));
}
String newStr=bos.toString();
try {
bis.close();
bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.print(newStr);
}
}
获取数据接口里面的数据,一般都是以json传递的。