【发布时间】:2020-03-02 15:53:52
【问题描述】:
我想在我的 android 应用程序中使用 httpclient。我知道这个库很久以前就被弃用了,但出于某种原因我想使用它。当我编写一些代码从 URL 获取 JSON 数据时,模拟器会获取我这个:image
这是我的代码:
public class FirstExampleActivity extends AppCompatActivity {
TextView tv ;
public static final String URL = "http://androidtestapp.gigfa.com/mysite/guitarist.json";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first_example);
tv = findViewById(R.id.tv);
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
MenuItem item = menu.add("GET");
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Thread thread = new Thread(new Runnable() {
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String content = msg.getData().getString("content");
tv.setText(content);
}
};
@Override
public void run() {
String content = getData();
Message message = new Message();
Bundle bundle = new Bundle();
bundle.putString("content",content);
message.setData(bundle);
handler.sendMessage(message);
}
});
thread.start();
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
private String getData() {
HttpClient client = new DefaultHttpClient();
HttpGet method = new HttpGet(URL);
try{
HttpResponse response = client.execute(method);
InputStream stream = response.getEntity().getContent();
String content = Utils.inputStreamToString(stream);
return content ;
}
catch (Exception ex){
ex.printStackTrace();
}
return null ;
}
}
【问题讨论】:
-
看起来你的帖子主要是代码;请添加更多细节。我想你一开始就明白这一点,但你还是忽略了这一点?
-
首先我推荐使用 Retrofit 或 Volley 进行网络请求,但是如果你想使用 Android 库你可以在这里查看:developer.android.com/reference/java/net/HttpURLConnection