我只是复制了所有jar文件,Http
但Android Studio
无法导入所有这些jar 文件.它给出了一个错误:
Cannot resolve symbol HttpGet,HttpClient,HttpResponse
.
我的Activity
档案在这里: -
public class MainActivity extends AppCompatActivity {
ArrayList<Product> productslist;
ProductAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
productslist = new ArrayList<Product>();
new JSONAsyncTask().execute("http://opencart.codeniques.com/myshop/?route=feed/web_api/products&id=60&key=test123");
ListView listView = (ListView)findViewById(R.id.list);
adapter = new ProductAdapter(getApplicationContext(),R.layout.row,productslist);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),productslist.get(position).getName(),Toast.LENGTH_LONG).show();
}
});
}
class JSONAsyncTask extends AsyncTask<String,Void,Boolean>{
ProgressDialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute(); …
Run Code Online (Sandbox Code Playgroud) 我正在使用Apache HTTP Client开发Java .
在我的Android应用程序中,它说:org.apache.http.client.httpclient已被弃用.经过一些研究,我发现Android已经在API 22中弃用了它.我在论坛中搜索并尝试:"应用程序已停止",搜索谷歌:"应用程序已经停止".所以我不知道该怎么做.我希望你们能帮助我.那么这是我的代码:
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.URL.com");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
Log.e("log_tag", "connection success");
// Toast.makeText(getApplicationContext(), "pass", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection" + e.toString());
Toast.makeText(getApplicationContext(), "Connection fail", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
编辑:
我正在尝试获取我的Mysql数据库的一些数据.你知道一个关于如何完成这个的好教程吗?请告诉我.
之间有什么区别setSocketTimout
,setConnectTimout
和setConnectionRequestTimeout
?
RequestConfig requestConfig = RequestConfig.copy(RequestConfig.DEFAULT)
.setSocketTimeout(500)
.setConnectTimeout(500)
.setConnectionRequestTimeout(500)
.build();
Run Code Online (Sandbox Code Playgroud) 我正在处理一个项目,在该项目中我需要调用我的服务,我的服务将以 JSON 格式返回数据。而且我不需要将此 JSON 响应序列化到任何 POJO,我只需要将数据作为字符串返回。这个应用程序对性能非常关键,所以HttpClient
必须非常快
所以我决定使用 Apache HttpClient 还是有更好的替代方案可以使用?
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpUriRequest request = new HttpGet("some-url");
request.addHeader("Context", "some-value");
HttpResponse response = httpClient.execute(request);
String response = IOUtils.toString(response.getEntity().getContent(), "UTF-8");
Run Code Online (Sandbox Code Playgroud)
但它抱怨说The type DefaultHttpClient is deprecated
,也许他们有新版本HttpClient
或其他方式来对 URL 进行 HttpClient 调用?
有什么我想念的吗?
Apache已弃用DefaultHttpClient,但似乎Android并非如此,另请参阅此处不推荐使用Java HttpClient - 它有多难?
输入
org.apache.httpcomponents:httpclient:4.3.5
Run Code Online (Sandbox Code Playgroud)
代替
new DefaultHttpClient();
Run Code Online (Sandbox Code Playgroud)
我现在用
HttpClient httpClient = HttpClientBuilder.create().build();
Run Code Online (Sandbox Code Playgroud)
创建一个http客户端.这在Java项目中工作正常,但在Android项目中使用时,缺少以下导入
import org.apache.http.impl.client.HttpClientBuilder;
Run Code Online (Sandbox Code Playgroud)
而
HttpClient sendClient = new DefaultHttpClient();
Run Code Online (Sandbox Code Playgroud)
未在Android中标记为已弃用且编译良好.
我不想再次添加Apache httpclient(如果我这样做,Android Studio无论如何都会排除它).
Android文档在这里说http://developer.android.com/reference/android/net/http/AndroidHttpClient.html#newInstance(java.lang.String)来使用
AndroidHttpClient.new Instance(string)
Run Code Online (Sandbox Code Playgroud)
"获得具有合理默认值的http客户端".
有谁知道在Android上创建HttpClient的正确方法是什么,以及userAgent字符串是什么!?
我正在尝试使用Groovy HTTPBuilder设置连接超时,并且在我的生活中无法找到方法.
使用普通ol'URL很容易:
def client = new URL("https://search.yahoo.com/search?q=foobar")
def result = client.getText( readTimeout: 1 )
Run Code Online (Sandbox Code Playgroud)
抛出一个SocketTimeoutException,但这不是我想要的.出于各种原因,我宁愿使用HTTPBuilder或更好的RESTClient.
这确实有效:
def client = new HTTPBuilder()
def result = client.request("https://search.yahoo.com/", Method.GET, "*/*") { HttpRequest request ->
uri.path = "search"
uri.query = [q: "foobar"]
request.getParams().setParameter("http.socket.timeout", 1);
}
Run Code Online (Sandbox Code Playgroud)
但是不推荐使用request.getParams().
对于我的生活,我找不到将正确的RequestConfig注入构建器的方法.