POST获取电话号码信息
main
package jx.com.day2_1_post;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
private EditText phonenump;
private Button button;
private TextView textView;
private final int UPDATE_UI = 1;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case UPDATE_UI:
textView.setText(msg.obj.toString());
}
}
};
private Message message;
private String stream;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
phonenump=findViewById(R.id.edit_shuru);
button=findViewById(R.id.button);
textView=findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!NetUtil.hasNetwork(MainActivity.this)){
Toast.makeText(MainActivity.this,
"网络不可用", Toast.LENGTH_SHORT).show();
}
new Thread(new Runnable() {
@Override
public void run() {
try {
getphone(phonenump.getText().toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
});
}
调用方法,参数为手机号码
private String baseUrlStr = "http://tcc.taobao.com/cc/json/mobile_tel_segment.htm";
private void getphone(String phonenum) throws IOException {
//打开URL地址
URL url = new URL(baseUrlStr);
//打开连接
HttpURLConnection connection= (HttpURLConnection) url.openConnection();
//设置 方法 超时
connection.setRequestMethod("POST");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
//设置标识符需要输出参数
connection.setDoOutput(true);
//输出无参数 tel++++++++
String zhi="tel=" + phonenum;
connection.getOutputStream().write(zhi.getBytes());
//强制发送给服务端
connection.getOutputStream().flush();
int responseCode = connection.getResponseCode();
if(responseCode == 200){
stream = streaminput(connection.getInputStream(), "gbk");
}else {
stream = "error" + responseCode;
}
message = handler.obtainMessage(UPDATE_UI,stream);
handler.sendMessage(message);
}
转换字符流
private String streaminput(InputStream is,String cs) throws IOException {
InputStreamReader isr = new InputStreamReader(is, cs);
BufferedReader br = new BufferedReader(isr);
StringBuilder builder = new StringBuilder();
for (String tmp = br.readLine(); tmp != null; tmp = br.readLine()){
builder.append(tmp);
}
return builder.toString();
}
}
GET获取电话号码信息
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class MainActivity extends AppCompatActivity {
private EditText edit_shuru;
private Button button;
private TextView textview;
private final int UPDATE_UI = 1;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case UPDATE_UI:
textview.setText(msg.obj.toString());
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit_shuru=findViewById(R.id.edit_shuru);
button=findViewById(R.id.button);
textview=findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(
new Runnable() {
@Override
public void run() {
try {
getName(edit_shuru.getText().toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
).start();
}
});
}
调用方法
private String baseUrlStr = "https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=";
public void getName(String phonenum) throws IOException {
//定义URL地址
URL url = new URL(baseUrlStr + phonenum);
//打开连接
HttpURLConnection urlConnection= (HttpURLConnection) url.openConnection();
//设置,请求方法,超时
urlConnection.setRequestMethod("GET");
//请求超时
urlConnection.setReadTimeout(5000);
//链接超时
urlConnection.setConnectTimeout(5000);
//链接并获取状态码
int responseCode = urlConnection.getResponseCode();
if(responseCode == 200){
String streamreader = streamreader(urlConnection.getInputStream());
Message message = handler.obtainMessage(UPDATE_UI,streamreader);
handler.sendMessage(message);
}else{
Message message=handler.obtainMessage(UPDATE_UI,"error:" + responseCode);
handler.sendMessage(message);
}
}
public String streamreader(InputStream is) throws IOException {
//转换为字符
InputStreamReader isr = new InputStreamReader(is, "gbk");
BufferedReader br = new BufferedReader(isr);
StringBuilder stringBuilder=new StringBuilder();
for(String tmp = br.readLine();tmp!= null;tmp = br.readLine()){
stringBuilder.append(tmp);
}
return stringBuilder.toString();
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<EditText
android:id="@+id/input"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="18679906337"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/query"
app:layout_constraintTop_toTopOf="parent"
/>
<Button
android:id="@+id/query"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="query"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/input"
/>
<TextView
android:id="@+id/info"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/query"
/>
</android.support.constraint.ConstraintLayout>