當前位置:首頁 » 安卓系統 » android請求數據

android請求數據

發布時間: 2022-04-22 12:17:58

java怎麼接收android請求過來的json數據

java接收android請求json數據的方法:

  • 如果發送的沒有參數名稱你可以直接得到請求體,如
    InputStreaminputStream=urlConnection.getInputStream();
    Stringencoding=urlConnection.getContentEncoding();
    Stringbody=IOUtils.toString(inputStream,encoding);
    System.out.println(body);

  • 如果body就是那個json內容使用fastjson進行解析就可以了
    JSONObjectmap=JSON.parseObject(body);
    System.out.println(map.getString("mobileNo"));//還是System.out.println(map.get("mobileNo"));?具體看一下介面文檔

  • 或者
    Mapmap=JSON.parseObject(body,Map.class);
    System.out.println(map.get("mobileNo"));

㈡ android 怎樣獲取後台的數據

可使用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();
}

㈢ android 開發 用模擬器可以請求到數據但是用手機就請求不到數據 試了多個手機 都不能 謝謝

如果手機無法進行數據流量上網,建議進行以下步驟操作:
1、檢查SIM卡是否開通GPRS上網業務或被臨時關閉。
使用手機數據上網功能,電話卡需開通數據流量上網業務。可以聯系電話卡當地的網路供應商,開通數據流量上網業務。
2、檢查「移動數據」開關是否開啟。
用手指向下滑動屏幕頂簾,把「移動數據」點為綠色。
若以上操作後仍無法上網,建議重置手機上網參數:設置-移動網路-接入點名稱-更多-重置為默認設置。
3、請更換其他電話卡嘗試
4、也可以換個時間段或網路環境再嘗試。
5、備份手機數據(電話簿、簡訊、圖片等),將手機恢復出廠設置
若故障依舊,建議將手機送至就近的服務中心進行檢測維修

㈣ 安卓中如何使用intentservice請求數據並保存在資料庫

service類必須實現一個接收方法,接收中傳遞的是intent
@Override
public
IBinder
onBind(Intent
intent)
{
Bundle
bundle
=
intent.getExtras();
String
stringVal
=
bundle.getString("stringValue");
//用於接收字元串
int
numVal
=
bundle.getInt("intValue");
//用於接收int類型數據
byte[]
bytes
=
bundle.getByteArray("bytesValue");
//用於接收位元組流,你可以把文件放入位元組流
return
null;
}
你可以用Bundle來接受你從Activity發過來的數據,然後使用Bundle提供各個方法來接受數據。
如果僅僅是字元串之類的,
使用getStringExtra方法直接接收即可。
@Override
public
IBinder
onBind(Intent
intent)
{
String
str1
=
intent.getStringExtra("str1");
String
str2
=
intent.getStringExtra("str2");
return
null;
}

㈤ 安卓網路請求數據時如何保證數據的完整性和安全性使用哪種加密

通過網路傳輸數據,需要保證數據的完整性、保密性,以及能夠對數據的發送者進行身份驗證。這些都需要通過一些加密演算法實現。

對稱加密:
加密和解密使用同一個密鑰,特點:保證了數據的保密性。局限性:無法解決密鑰交換問題。常用的演算法有:DES,3DES,AES;

公鑰加密:
生成一個密鑰對(私鑰和公鑰),加密時用私鑰加密,解密時用公鑰解密,特點:解決了密鑰交換問題。局限性:對大的數據加密速度慢。

單向加密:
提取數據的特徵碼,特點:定長輸出,不可逆,可檢驗數據的完整性。局限性:無法保證數據的保密性。常用演算法:MD5、SHA1、CRC-32。

三種加密方法各有優缺點,在時實際應用中,數據從發送方到達接收方,通常是這樣應用的:

1) 首先對要發送的數據做單向加密,獲取數據的特徵碼;

2) 對特徵碼用發送方的私鑰進行加密生成S1;

3) 然後對S1和數據進行對稱加密生成S2;

4) 最後將S2和對稱加密的密碼使用接收方的公鑰進行加密。

這樣一來數據在傳輸過程中的完整性、保密性以及對發送方身份的驗證都能得到保障。

當數據到達接收方時,接收方先用自己的私鑰對接收到的數據進行解密,得到密碼和加密的數據;使用密碼對加密數據解密,得到加密的特徵碼和數據;用發送方的公鑰解密特徵碼,如果能解密,則說明該數據是由發送方所發;反之則不是,這便實現了身份驗證;最後計算數據的特徵碼和解密出來的特徵碼做對比,如果一樣,則該數據沒有被修改;反之則數據被修改過了。

㈥ android socket請求數據怎麼抓包

從網路上面搜索到的資料看,要抓取手機中app的網路包有下面幾種方式:(1).將tcpmp移植到Android平台,然後在命令行下啟動tcpmp進行抓包。Tcpmp程序實際上可以看作是wireshark的命令行版本,將該程序移植到Android平台直接抓包,這是一種最直接的抓包方式,然後將抓獲的數據包文件,從手機傳到windows系統上用wireshark打開進行分析,這種方式貌似不能用於蘋果手機。(2).使用fiddler,在windows系統上打開fiddler軟體,該軟體會將我們的電腦變成一個代理,然後在手機上設置wifi網路,將代理指定為開啟fiddler的那台電腦,並且埠設置為fiddler偵聽的8888埠,這時候使用手機訪問的數據,就會通過該代理,在fiddler中就可以看到http的數據包。這種方法我試了半天怎麼都看不到數據包,不知道哪裡出問題了,根據原理,這種方式支持可以通過代理訪問網路的手機。所以從原理上說是支持Android和蘋果手機的。(3).通過各種方式在pc電腦上建立wifi熱點,然後使用wireshark在pc電腦上監視該wifi熱點,通過手機連接該熱點訪問網路。這樣wireshark會獲取所有流經該熱點的數據包這種方式適用於所有能夠無線訪問的手機,也就是說所有的Android和蘋果手機。那麼如何在pc電腦上建立wifi熱點呢,有這么幾種辦法:(1).Win7電腦經過設置,可以將無線網卡設置為wifi熱點,這種方法我以前用過,可以成功,但是步驟繁瑣,而且不一定能夠成功,其他的windows系統估計就沒戲了。(2).使用軟體自動建立wifi熱點,不需要自己手工配置,這樣的軟體有Connectify Hotspot,獵豹免費wifi,360免費wifi軟體,這幾個軟體我都使用過,比較好用,這種方式同樣也只能針對有無線網卡的筆記本電腦,原理也是將筆記本電腦上的無線網卡建立熱點了,只不過是軟體自動的,不需要人工設置,比方法1要方便。注意:經過實驗發現,手機連接這種方式建立的熱點,所發送的數據,用wireshark去抓包,需要捕獲電腦上本身聯網的那個「網路連接」,例如我的筆記本上面有一個「本地連接」,該連接是使用有線網路的。我用獵豹免費wifi軟體建立一個熱點之後,我的電腦上多出一個「無線網路連接3」,可以看到該「無線網路連接3」是獵豹生成的,但是我抓包的時候,wireshark需要捕獲「本地連接」上的包,也就是我的手機訪問的數據實際上還是使用的「本地連接」,通信IP也是「本地連接」上的IP地址,而在手機的wifi連接設置中看到的ip地址,在我抓的包中也搜不到,也就是說手機通過該熱點訪問網路,實際上還是使用的「本地連接」的IP地址,至於是什麼原理,我目前也不太清楚。但是下面要說的隨身wifi硬體則與此不同,隨身wifi是建立了網卡。(3).使用隨身wifi硬體。這種也是很方便的方法,而且比較穩定,對筆記本電腦和台式機都可以使用。我之前買了一個360的隨身wifi(不是打廣告,本人對360公司不感冒,但是他的隨身wifi做的確實還可以,同事中有買小米wifi的,不太穩定)。只要在360的官網上下載驅動,直接插上隨身wifi就可以使用,我推薦使用這種方法。如果你用的是筆記本電腦可以使用方法2,如果是台式機器可以使用方法3。android socket請求數據怎麼抓包

㈦ android post網路數據的請求

public static String HttpPostMethod(String get_url,
List<NameValuePair> params) {
String result = "";
HttpParams basicHttpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(basicHttpParams, 15 * 1000);
HttpConnectionParams.setSoTimeout(basicHttpParams, 15 * 1000);
HttpClient htc = new DefaultHttpClient(basicHttpParams);
HttpResponse httpResponse = null;
try {
HttpPost httpPost = new HttpPost(get_url);
// response = htc.execute(request);
// 設置httpPost請求參數
// 創建參數隊列
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");//json
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
// httpResponse = new DefaultHttpClient().execute(httpPost);
httpResponse = htc.execute(httpPost);
// System.out.println(httpResponse.getStatusLine().getStatusCode());
Log.d("zh1", get_url+" " + httpResponse.getStatusLine().getStatusCode());
if (httpResponse.getStatusLine().getStatusCode() == 200) {
// 第三步,使用getEntity方法活得返回結果
result = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8);
if(result==null||result.equals("")){
return null;
}
}else{
return null;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
result = null;
} catch (IOException e) {
e.printStackTrace();
result = null;
}
return result;
}

㈧ Android網路介面請求數據,oppo R15手機4G流量,請求不到數據。

網路介面請求數據,測試中用OPPO R15手機4G流量,請求數據時,請求提示連接超時,但用Wifi請求數據可以正常請求到數據,建議進入OPPO R15手機【設置】——【雙卡與移動網路】——【使用WLAN與移動網路的應用】,點擊軟體允許使用移動網路數據。

經過以上嘗試問題依然存在,可備份手機中的重要數據文件後,進入【設置】——【其他設置】——點擊【還原手機】,或攜帶手機前往OPPO 客戶服務中心免費檢測刷機。通過以下方式可以快速查詢到OPPO客戶服務中心的地址和電話:

1.進入OPPO官網--服務--服務網點查詢;2.進入【OPPO+】——【首頁】——【推薦】——【服務網點】。

㈨ android網路請求數據是同步還是非同步

非同步請求,因為UI線程(主線程)不允許有5秒以上的耗時操作.在主線程網路請求會導致阻塞,看起來程序就像假死了一樣.所以都是非同步請求.

㈩ 怎樣使 Android 的 ScrollView 動態請求數據

可以用PullRefreshListView開源的,如果是其他情況 可以重寫scrollView有一個protected void onScrollChanged(int x, int y, int oldx, int oldy) 方法 你寫一個介面 回調就ok了,在做ListView載入數據時如果數據量大的話會造成載入時間過長而卡屏,
只要重寫這兩個方法就可以實現滾動載入,如以下代碼

php">publicvoidonScroll(AbsListViewv,intfirstVisibleItem,
intvisibleItemCount,inttotalItemCount){
lastItem=firstVisibleItem+visibleItemCount-1;
if(adapter.count==lastItem){
adapter.count+=10;
adapter.notifyDataSetChanged();
}

}

(AbsListViewview,intscrollState){
//TODOAuto-generatedmethodstub

Log.i("onScrollStateChanged","onScrollStateChanged");
}
熱點內容
win8windows無法訪問 發布:2025-05-16 00:37:53 瀏覽:894
八種排序演算法 發布:2025-05-16 00:37:17 瀏覽:55
左旋螺紋數控編程實例 發布:2025-05-16 00:11:49 瀏覽:10
安卓游戲舊版本從哪個軟體下載 發布:2025-05-16 00:00:20 瀏覽:329
連接聚類演算法 發布:2025-05-15 23:55:09 瀏覽:978
工資演算法單休 發布:2025-05-15 23:52:30 瀏覽:819
超凡先鋒配置不行怎麼辦 發布:2025-05-15 23:27:54 瀏覽:532
win7取消加密 發布:2025-05-15 23:26:37 瀏覽:472
不用internet打開ftp 發布:2025-05-15 23:06:00 瀏覽:154
sql字元串取數字 發布:2025-05-15 22:57:45 瀏覽:125