【Http请求】
1.get请求(简单直接,速度快)
请求地址:
https://siemens-home.tmall.com/shop/view_shop.htm ? (问号后表示开始加入Get请求的参数)
请求的7个参数(以&符号分割):
spm=a21bo.2017.201863-1.d1.5af911d9PXsRPq &
user_number_id=859230932 &
pvid=3aa663fc-dd84-4782-81ab-c8fdd6416edb &
pos=1 &
brandId=80946 &
acm=03014.1003.1.765824 &
scm=1007.13143.56636.100200300000000
2.post请求(安全性好,长度无限制)
【网络权限】
网络请求需要在清单文件中增加权限
<uses-permission android:name="android.permission.INTERNET"/>
实现
使用聚合数据作为数据源,将收到的数据打印到Log中
package com.example.myapplication;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread() {
public void run() {
//准备一个要访问的链接地址
String site = "http://v.juhe.cn/toutiao/index?key=*******************************";
try {
//转换字符串为URL对象
URL url = new URL(site);
//获得网络请求对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//设置请求模式为GET
conn.setRequestMethod("GET");
//获得网络请求状态码
int httpCode = conn.getResponseCode();
//如果正常
if(httpCode == 200) {
//获得字节输入流
InputStream is = conn.getInputStream();
//字节流转字符流
InputStreamReader isr = new InputStreamReader(is);
//套一层缓冲流提高效率(字符输入缓冲流)
BufferedReader br = new BufferedReader(isr);
//用于拼接服务器返回的字符数据的字符串对象
String data = new String();
//每次循环读取的buffer
String buf;
//循环读取
while((buf = br.readLine()) != null) {
//拼接结果
data += buf;
}
//关闭流
br.close();
//输出接收到的服务器的数据
Log.d("MainActivity", data);
}else {
Log.d("MainActivity", "http请求失败,状态码:"+httpCode);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>