我正在关注本教程:https://www.youtube.com/watch?v=I58TkCi73ew
在视频的中间部分,Derek Banas插入DefaultHttpClient显然允许从应用程序进行浏览器/ Web访问。但是当我在IDE中输入确切的代码时,有一个错误报告说Android Studio无法解析DefaultHttpClient。这是DefaultHttpClient的代码:
class SaveTheFeed extends AsyncTask<Void, Void, Void>{
String jsonString = "";
String result = "";
@Override
protected Void doInBackground(Void... voids) {
EditText translateEditText = (EditText) findViewById(R.id.editText);
String wordsToTranslate = translateEditText.getText().toString();
wordsToTranslate = wordsToTranslate.replace(" ", "+");
DefaultHttpClient httpClient = new DefaultHttpClient(new BasicHttpParams());
return null;
}
}
我尝试导入这些包,但包中也有错误。
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
我试图在其他问题中查看其他解决方案,但没有一个真正吸引我的问题。任何人都可以帮我这个吗?
谢谢!☺
注意:此问题与Can't import org.apache.http.HttpResponse in Android Studio不重复。首先,我没有使用Eclipse。第二,我尝试了这个问题的第一个解决方案,但(可能是我的误解)OkHttp对我没有用。这也可能是因为我的代码格式和风格与不同的软件包不同。要求。
答案 0 :(得分:4)
将此添加到build.gradle并进行同步。
android {
useLibrary 'org.apache.http.legacy'
}
顺便说一句,httpclient已被弃用了。你应该使用@Clive参考。
dependencies {
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
}
或者在依赖项中添加它。 httpclient在此不被弃用。
答案 1 :(得分:0)
使用HttpUrlConnection代替或使用库来执行此操作,OkHttp库是一个很好的库。 http://square.github.io/okhttp/