
[WebMethod]
public string Project(string paramaters)
{
return paramaters
}
实现代码
public string Post(string methodName, string jsonParas)
{
string strURL = Url + "/" + methodName
//创建一个HTTP请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL)
//Post请求方式
request.Method = "POST"
//内容类型
request.ContentType = "application/x-www-form-urlencoded"
//设置参数,并进行URL编码
//虽然我们需要传递给服务器端的实际参数是JsonParas(格式:[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}]),
//但是需要将该字符串参数构造成键值对的形式(注:"paramaters=[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}]"),
//其中键paramaters为WebService接口函数的参数名,值为经过序列化的Json数据字符串
//最后将字符串参数进行Url编码
string paraUrlCoded = System.Web.HttpUtility.UrlEncode("paramaters")
paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(jsonParas)
byte[] payload
//将Json字符串转化为字节
payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded)
//设置请求的ContentLength
request.ContentLength = payload.Length
//发送请求,获得请求流
Stream writer
try
{
writer = request.GetRequestStream()//获取用于写入请求数据的Stream对象
}
catch (Exception)
{
writer = null
Console.Write("连接服务器失败!")
}
//将请求参数写入流
writer.Write(payload, 0, payload.Length)
writer.Close()//关闭请求流
String strValue = ""//strValue为http响应所返回的字符流
HttpWebResponse response
try
{
//获得响应流
response = (HttpWebResponse)request.GetResponse()
}
catch (WebException ex)
{
response = ex.Response as HttpWebResponse
}
Stream s = response.GetResponseStream()
//服务器端返回的是一个XML格式的字符串,XML的Content才是我们所需要的Json数据
XmlTextReader Reader = new XmlTextReader(s)
Reader.MoveToContent()
strValue = Reader.ReadInnerXml()//取出Content中的Json数据
Reader.Close()
s.Close()
return strValue//返回Json数据
}
Url的格式样例:"http://59.68.29.106:8087/IFT_Project.asmx"
methodName参数就是"Project"
JsonParas就是使用C# JavaScriptSerializer将List<Object>类型的对象序列化之后得到的值,数据格式:[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}],Json数据中的中括号代表由着多个对象集合序列化,花括号代表一个对象序列化得到的结果,花括号里面的内容使用键值对的方式展示,多个属性之间用逗号隔开,每个对象也用逗号隔开。
request.ContentType必须设置值,建议使用"application/x-www-form-urlencoded",设置其他值就很容易报服务器内部异常,使用这种方式服务接口方法返回的是xml格式的字符串
payload将请求参数转换成二进制来保存,此处一定要将“paramaters”加入其中,不然会报异常缺少参数,paramaters就是服务接口函数的参数名。函数中使用了URL编码,注意在编码的时候只需要将键和值进行编码,不要将中间的=进行编码,不然getResponse的时候会报异常。
request.ContentLength也是必须设置的值
在得到响应流之后Stream s = response.GetResponseStream()需要使用Reader来解析响应流,这个地方我使用的是XmlTextReader,因为我服务方法返回的是xml格式的字符串,其中Json数据在xml的Content中。在取出Json数据之后,再进行相应的反序列化即可得到对象。
可以直接在返回的方法上添加@ResponseBody 实现对象自动转换json格式
@RequestMapping(value = "/get")@ResponseBody
public Object getJson() {
Map<String, Object> map = new HashMap()
map.put("name", "dhweicheng")
map.put("age", 25)
return map
}
java 访问一个接口得到接口返回JSON,步骤是怎么做的写个servlet,将结果转换成ArrayJson对象,打印出这个json就行,前端通过ajax去请求获得json数据。java转json需要用到相应的jar包,百度一下吧。
java中的接口是一种特殊的类,使用关键字interface创建。接口功能完全实现后,可以打成jar包,提供给其他公司使用。
要返回json格式数据,可以把接口中抽象方法的返回值类型规定为JSONObject或JSONString类型。这样当其他公司调用时,得到的数据就是json数据了。
另外,以jar形式提供的接口,可以通过反编译得到你的源码,如果你不希望开源,就要加密了。
访问接口时code返回2怎么回事访问接口时code返回2怎么回事
一般情况接口有调用说明的,需要看接口提供方提供的说明。
AFNeorking 接口返回值类型不是json 时怎么做AFHTTPRequestOperationManager 进行post调用,
manager.requestSerializer = [AFJSONRequestSerializer serializer]请求
manager.responseSerializer = [AFJSONResponseSerializer serializer]响应
入参出参都会序列化;后面发现接口返回的参数结构不固定,可能是map,array,string
Java中Comparator接口的步骤pare为什么不能返回一个差值我印象中如果不重写pareTo方法那返回值都是-1吧......
我一般都是实现Comparable接口,重写CompareTo方法就可以了。
至于降序升序,可以这样比较:
假如A的值大于B,你返回1。这样调用Collections.sort()方法就是升序
假如A的值大于B,你返回-1。这样调用Collections.sort()方法就是降序
一般比较的都是对象中一个具体的数值。不知道你的类的构造,不好给例子
返回json的接口struts.xml的怎么配struts2中用rest后台返回json的方法是统一封装response为JSONObject即可。举例如下:importjava.util.ArrayListimportjava.util.HashMapimportjava.util.Listimportjava.util.Mapimport.opensymphony.xwork2.ActionpublilassTest{publicMapresponseJsonpublicMapgetResponseJson(){returnresponseJson}publicvoidsetResponseJson(MapresponseJson){this.responseJson=responseJson}publicStringgetList(){Mapmap=newHashMap()List>list=newArrayList>()for(inti=0im=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}}
node.js 怎么访问一个php接口可以的,以GET请求为例
var = require('')
var qs = require('querystring')
var data = {
a: 123,
time: new Date().getTime()}这是需要提交的数据
var content = qs.stringify(data)
var options = {
hostname: '127.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()
Java中返回json数据提交一个接口有多表怎么查1
这种方法有两大步第一步是拼接需要的json数据,第二步是用servlet的内置对象response返回到前台。
2
String 类型的数据可以不用借助任何工具直接返回,只要把它拼接对了就可以。如我需要返回一个{“suess”:true,“msg”:“修改失败!”}的json,就可以如下图这样写。(注意,java里的引号要用的转义字符“\”)
3
如果需要返回的是一个list或者别的类的化,需要用到JSONArray的辅助工具类,然后使用response.getWriter().print(),返回到打到前台。具体代码如下图。
END
方法2:用Spring框架
如果你使用了Spring框架那就更简单了,你只需要在你的方法返回的时候加一个@ResponseBody的注解就可以了。就这么简单。
用URL访问接口,怎么做在java中,调用请求接口,主要通过流的方式进行调用,示例接口如下:
/**
* 程序中访问数据接口
*/
public String searchLoginService(String urlStr) {
/** 网络的url地址 */
URL url = null
/** 连接 */
HttpURLConnection Conn = null
/**** 输入流 */
BufferedReader in = null
StringBuffer *** = new StringBuffer()...
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)