Ⅰ 如何在java代码中执行jsonp请求
首先你要知道jsonp工作原理,实质上也就是利用了一些旁门左道(浏览器对资源文件无限制的特点)来进行的跨域访问,能共用的技术是http,所以在java里可以使用httpclient工具来发送http请求,并把请求做成jsonp的请求模样就行了。
Ⅱ java 访问一个接口得到接口返回JSON,步骤是怎么做的
写个servlet,将结果转换成ArrayJson对象,打印出这个json就行,前端通过ajax去请求获得json数据。java转json需要用到相应的jar包,网络一下吧。
java中的接口是一种特殊的类,使用关键字interface创建。接口功能完全实现后,可以打成jar包,提供给其他公司使用。
要返回json格式数据,可以把接口中抽象方法的返回值类型规定为JSONObject或JSONString类型。这样当其他公司调用时,得到的数据就是json数据了。
另外,以jar形式提供的接口,可以通过反编译得到你的源码,如果你不希望开源,就要加密了。
访问接口时code返回2怎么回事
一般情况接口有调用说明的睁宽,需要看接口提供方提供的说明。
AFHTTPRequestOperationManager 进行post调用,
manager.requestSerializer = [AFJSONRequestSerializer serializer];请求
manager.responseSerializer = [AFJSONResponseSerializer serializer];响应
入参出参都会序列化;后面发现接口返回的参数结构不固定,可能是map,array,string
我印象中如果不重写pareTo方法那返回值都是-1吧......
我一般都是实现Comparable接口,重写CompareTo方法就可以了。
至于降序升序,可以这样比较:
假如A的值大于B,你返回1。这样调用Collections.sort()方法就是升序
假如A的值大于B,你返回-1。这样调用Collections.sort()方法腊袭就是降序
一般比较的都是对象中一个具体的数值。不知道你的类的构造,不好给例子
struts2中用rest后台返回json的方法是统一封装response为JSONObject即可。举例如下:importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;import.opensymphony.xwork2.Action;publilassTest{publicMapresponseJson;publicMapgetResponseJson(){returnresponseJson;}publicvoidsetResponseJson(MapresponseJson){this.responseJson=responseJson;}publicStringgetList(){Mapmap=newHashMap();List>list=newArrayList>();for(inti=0;im=newHashMap();m.put("id",i);m.put("name","Mic"+i);list.add(m);}map.put("rows",list);map.put("totalCont",3);this.setResponseJson(map);returnAction.SUCCESS;}}
可以的,以GET请求为例
var = require('');
var qs = require('querystring');
var data = {
a: 123,
time: new Date().getTime()};这是需要提交的数据轮早兄
var content = qs.stringify(data);
var options = {
hostname: 飗.0.0.1',
port: 10086,
path: '/pay/pay_callback?' + content,
method: 'GET'
};
var req = .request(options, function (res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function (e) {
console.log('problem with request: ' + e.message);
});
req.end();
1
这种方法有两大步第一步是拼接需要的json数据,第二步是用servlet的内置对象response返回到前台。
2
String 类型的数据可以不用借助任何工具直接返回,只要把它拼接对了就可以。如我需要返回一个{“suess”:true,“msg”:“修改失败!”}的json,就可以如下图这样写。(注意,java里的引号要用的转义字符“”)
3
如果需要返回的是一个list或者别的类的化,需要用到JSONArray的辅助工具类,然后使用response.getWriter().print(),返回到打到前台。具体代码如下图。
END
方法2:用Spring框架
如果你使用了Spring框架那就更简单了,你只需要在你的方法返回的时候加一个@ResponseBody的注解就可以了。就这么简单。
在java中,调用请求接口,主要通过流的方式进行调用,示例接口如下:
/**
* 程序中访问数据接口
*/
public String searchLoginService(String urlStr) {
/** 网络的url地址 */
URL url = null;
/** 连接 */
HttpURLConnection Conn = null;
/**** 输入流 */
BufferedReader in = null;
StringBuffer *** = new StringBuffer(); ...
Ⅲ Java 的Webservice 如何获取post 提交的json数据
java的webservice获取post提交的json数据的示例如下:
importorg.apache.http.Header;
importorg.apache.http.HttpEntity;
importorg.apache.http.HttpResponse;
importorg.apache.http.NameValuePair;
importorg.apache.http.client.ClientProtocolException;
importorg.apache.http.client.entity.UrlEncodedFormEntity;
importorg.apache.http.client.methods.HttpPost;
importorg.apache.http.entity.StringEntity;
importorg.apache.http.impl.client.DefaultHttpClient;
importorg.apache.http.message.BasicHeader;
importorg.apache.http.message.BasicNameValuePair;
importorg.apache.http.params.BasicHttpParams;
importorg.apache.http.params.HttpConnectionParams;
importorg.apache.http.params.HttpParams;
importorg.apache.http.protocol.HTTP;
importorg.json.JSONException;
importorg.json.JSONObject;importandroid.app.Activity;
importandroid.content.Context;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.widget.TextView;importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.UnsupportedEncodingException;
importjava.net.HttpURLConnection;
importjava.util.ArrayList;
importjava.util.List;{
publicContextcontext;
privateTextViewtextView1;
publicstaticStringURL="http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";
;
StringBuilderresult=newStringBuilder();
privatestaticfinalintTIMEOUT=60;
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
HttpParamsparamsw=createHttpParams();
掘岩扰
httpClient=newDefaultHttpClient(paramsw);
HttpPostpost=newHttpPost(
枣段"http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl");
List<NameValuePair>params=newArrayList<NameValuePair>();
params.add(newBasicNameValuePair("name","thisispost"));
try{
判旦//向服务器写json
JSONObjectjson=newJSONObject();
Objectemail=null;
json.put("email",email);
Objectpwd=null;
json.put("password",pwd);
StringEntityse=newStringEntity("JSON:"+json.toString());
se.setContentEncoding(newBasicHeader(HTTP.CONTENT_TYPE,"application/json"));
post.setEntity(se);post.setEntity(newUrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponsehttpResponse=httpClient.execute(post);
inthttpCode=httpResponse.getStatusLine().getStatusCode();
if(httpCode==HttpURLConnection.HTTP_OK&&httpResponse!=null){
Header[]headers=httpResponse.getAllHeaders();
HttpEntityentity=httpResponse.getEntity();
Headerheader=httpResponse.getFirstHeader("content-type");
//读取服务器返回的json数据(接受json服务器数据)
InputStreaminputStream=entity.getContent();
=newInputStreamReader(inputStream);
BufferedReaderreader=newBufferedReader(inputStreamReader);//读字符串用的。
Strings;
while(((s=reader.readLine())!=null)){
result.append(s);
}
reader.close();//关闭输入流
//在这里把result这个字符串个给JSONObject。解读里面的内容。
JSONObjectjsonObject=newJSONObject(result.toString());
Stringre_username=jsonObject.getString("username");
Stringre_password=jsonObject.getString("password");
intre_user_id=jsonObject.getInt("user_id");
setTitle("用户id_"+re_user_id);
Log.v("urlresponse","true="+re_username);
Log.v("urlresponse","true="+re_password);
}else{
textView1.setText("ErrorResponse"+httpResponse.getStatusLine().toString());
}
}catch(UnsupportedEncodingExceptione){
}catch(ClientProtocolExceptione){
}catch(IOExceptione){
}catch(JSONExceptione){
e.printStackTrace();
}finally{
if(httpClient!=null){
httpClient.getConnectionManager().shutdown();//最后关掉链接。
httpClient=null;
}
}
}(){
finalHttpParamsparams=newBasicHttpParams();
HttpConnectionParams.setStaleCheckingEnabled(params,false);
HttpConnectionParams.setConnectionTimeout(params,TIMEOUT*1000);
HttpConnectionParams.setSoTimeout(params,TIMEOUT*1000);
HttpConnectionParams.setSocketBufferSize(params,8192*5);
returnparams;
}
}
Ⅳ Java中如何根据一个http接口获取JSON数据,http接口是通过第三方提供,有机构私钥,求代码示例
使用HttpClient,参照代码如下:
http://..com/question/1446921645999461940.html