A. pb 調用http 介面問題,返回值jsON格式,怎麼獲取返回值
介面只有
HTTP的
介面說明
EXLIVE開放平台增加動態數據介面,主要以JSON格式返回車輛當前位置數據、軌跡回放數據等等車輛動態信息
(1)信息內容為json格式,必須採用UTF-8編碼。(建議提交方式為post方法,可以避免漢字亂碼問題)
HT請求TP例子:
C# code?
1
http://60.195.248.67:89/gpsonline/GPSAPI?version=1&method=loginSystem&name=sunyan&pwd=123456
返回格式:
C# code?
1
2
3
4
5
6
{
"version":1,
"success":true,
"uid":2103811,
"uKey":""
}
我目前用的POSTURL 來寫的
但是不知道怎麼獲取返回的 JSON格式的值
目前寫的代碼
C# code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Blob lblb_args
String ls_header
String ls_url
String ls_args
long ll_length
integer li_rc
li_rc = GetContextService( "Internet", iinet_base )
IF li_rc = 1 THEN
iinet = Create n_iinet
ir = CREATE n_ir_msgbox
ls_url = "http://125.64.14.211:89/gpsonline/GPSAPI?"
ls_args = "version=1&method=loginSystem&name=hds&pwd=666888"
lblb_args = Blob( ls_args )
ll_length = Len( lblb_args )
ls_header = "Content-Type: " + &
"application/x-www-form-urlencoded~n" + &
"Content-Length: " + String( ll_length ) + "~n~n"
li_rc = iinet.PostURL( ls_url, lblb_args, ls_header, ir )
END IF
B. 如何調用http介面獲取json數據及GET/POST方式調用http介面
HTTP介面返回的JSON數據,其實就是HTTP請求後返回的HTTP主體那一部分。
HTTP協議規定,HTTP頭部和HTTP主體之間是以一個空行分割的。因為HTTP每一行(每一行是指一個頭部欄位)是以\r\n結束的,一個空行的\r\n,再加上最後一行的結束符\r\n,一起是\r\n\r\n,也就是說,當檢測到\r\n\r\n四個字元時,下一個字元開始就是HTTP body的內容了。把HTTP響應主體保存下來就是JSON數據了。
C. 怎麼通過JSON發送個Http 請求
試試這個代碼: show_data;JSONObject my_json_obj;String path,firstname,lastname;path = " http://192.168.101.123:255/services/services.php?id=9"; HttpClient client = new DefaultHttpClient(); HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); HttpEntity entity; HttpResponse response = null; HttpURLConnection urlconn; my_json_obj = new JSONObject(); try { urlconn = (HttpURLConnection) new URL(path).openConnection(); urlconn.setConnectTimeout(10000); urlconn.setDoOutput(true); OutputStreamWriter writer = new OutputStreamWriter(urlconn.getOutputStream(), "UTF-8");my_json_obj.put("sUserName", "test2"); my_json_obj.put("sPassword", "123456");writer.write(my_json_obj.toString()); writer.close();if(true) { String temp; temp = WebRequestCall(my_json_obj); //Log.i("Reply", temp); }
D. C#調完 http介面後得到一串字元Json格式,怎麼樣將這一字元串轉換成datatable以及其他類型
JsonObject 格式是 kv 結構
key: value
key: value
DataTable 是表結構
-----------------------------------
col1 | col2 | col3 | col4 |
-------|-------|-------|-------|-----
row1 | row2 | row3 | row4 |
-------|-------|-------|-------|-----
先要定義怎麼轉,哪些數據放到哪兒
示例:
varstr="{"msg":"成功!","code":"0000","data":""}";
varjson=Json.Parse(str)asJsonObject;
DataTabletable=newDataTable();
foreach(varkeyinjson.Keys)
table.Columns.Add(newDataColumn(key));
varrow=table.NewRow();
foreach(varkeyinjson.Keys)
row[key]=json[key].ToString();
table.Rows.Add(row);
可以使用以下消閉方法將JSON文件發送給客戶端:
1. 將JSON文件讀取為字元串,例如:
```
String jsonString = new String(Files.readAllBytes(Paths.get("path/to/jsonFile.json")));
```
2. 將字元串設置為響應體,設置響應頭為JSON格式,例如薯沖:
```
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonString);
```
3. 發拿手裂送響應,例如:
```
response.flushBuffer();
```
另外還可以使用一些框架,如Spring MVC的`@ResponseBody`註解,可以將JSON對象或實體類自動轉換為JSON格式發送給客戶端。