标签: androidhttpclient

将sdk更新为M时,无法解析导入org.apache.http.client错误

当我将项目导入eclipse时,我遇到了以下错误.我已将我的sdk更新为M.

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;
Run Code Online (Sandbox Code Playgroud)

android androidhttpclient

16
推荐指数
3
解决办法
6万
查看次数

Android错误:java.net.SocketException:Socket已关闭

我看到这个错误在我的崩溃日志中出现了一周数百次,但我已经花了几个星期试图追逐错误而没有任何成功.我无法在任何设备上重现它.这是堆栈跟踪:

Posix.java:-2 in "libcore.io.Posix.recvfromBytes"
Posix.java:131 in "libcore.io.Posix.recvfrom"
BlockGuardOs.java:164 in "libcore.io.BlockGuardOs.recvfrom"
IoBridge.java:513 in "libcore.io.IoBridge.recvfrom"
PlainSocketImpl.java:489 in "java.net.PlainSocketImpl.read"
PlainSocketImpl.java:46 in "java.net.PlainSocketImpl.access$000"
PlainSocketImpl.java:241 in "java.net.PlainSocketImpl$PlainSocketInputStream.read"
AbstractSessionInputBuffer.java:103 in "org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer"
AbstractSessionInputBuffer.java:191 in "org.apache.http.impl.io.AbstractSessionInputBuffer.readLine"
DefaultResponseParser.java:82 in "org.apache.http.impl.conn.DefaultResponseParser.parseHead"
AbstractMessageParser.java:174 in "org.apache.http.impl.io.AbstractMessageParser.parse"
AbstractHttpClientConnection.java:180 in "org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader"
DefaultClientConnection.java:235 in "org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader"
AbstractClientConnAdapter.java:259 in "org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader"
HttpRequestExecutor.java:279 in "org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse"
HttpRequestExecutor.java:121 in "org.apache.http.protocol.HttpRequestExecutor.execute"
DefaultRequestDirector.java:428 in "org.apache.http.impl.client.DefaultRequestDirector.execute"
AbstractHttpClient.java:555 in "org.apache.http.impl.client.AbstractHttpClient.execute"
AbstractHttpClient.java:487 in "org.apache.http.impl.client.AbstractHttpClient.execute"
AbstractHttpClient.java:465 in "org.apache.http.impl.client.AbstractHttpClient.execute"
Utilities.java:484 in "com.myapp.android.Utilities$8.run"
Run Code Online (Sandbox Code Playgroud)

这是错误来自的代码块......发生崩溃的确切位置是HttpResponse response = httpclient.execute(httppost);:

 public static HttpPost postData(String URL, final List<NameValuePair> params, final Handler …
Run Code Online (Sandbox Code Playgroud)

java android android-asynctask androidhttpclient android-studio

13
推荐指数
2
解决办法
2万
查看次数

针对API等级9及更高版本的AndroidHttpClient与HttpUrlConnection

对于API Level 9(Gingerbread)哪个更好,为什么?使用AndroidHttpClient而不是HttpUrlConnection有什么好处吗?

任何帮助或指导将不胜感激.

android httpurlconnection androidhttpclient

12
推荐指数
1
解决办法
6616
查看次数

Google Volley vs Android-Async-Http

我正在研究这两个Android Http Networking库.

我想有些人使用这两个库的经验.就个人而言,我总是非常高兴地使用http://loopj.com/android-async-http/库.但最近我建议使用Volley Framework.

我可以从一个到另一个获得什么好处?
从我的阅读到目前为止,Volley在一个库中集成了许多不错的功能,如图像加载,请求缓存,请求取消.

我目前的使用案例/规格:

从我的Android应用程序中获取Web服务.

  • 从Web服务接收JSON对象
  • 易于与GUI集成
  • 原始性能的稳定性和可靠性
  • 图书馆的长期维护和支持.
  • 易于使用/易于实施

从SE上的一些阅读:

"Volley一切都很好,但从负面来看,它是一个没有文档记录,不受支持的,"将代码扔到墙上并对其进行I | O演示"库".

所以我认为它清晰的Volley可能会得到功能,但是记录和维护的程度如何呢?如果我决定使用它,4年后仍然会有它的支持吗?

android androidhttpclient android-volley android-async-http

10
推荐指数
2
解决办法
1万
查看次数

无法连接到 localhost/127.0.0.1 android

我是 android 开发的新手,并试图通过改造库在 android 中调用本地 .NET web api 服务。在 IIS 上启动我的 web api 后,我收到此错误无法连接到 localhost/127.0.0.1 android。

当我按照建议的http://themakeinfo.com/2015/04/retrofit-android-tutorial/做同样的事情时,它工作正常,但我的本地主机服务没有从 android 调用

我的服务网址是, http://localhost:52511/api/Values/getAllStudents/5

它也在浏览器中为我提供了 XML 格式的输出。

我也试着用,

public interface gitapi {
    @GET("/api/Values/GetProduct/{id}")      //here is the other url part.best way is to start using /
    public void getFeed(@Path("id") int id, Callback<gitmodel> response);
}

public class gitmodel {
    public int studentId;
    public String studentName;
    public String studentAddress;
}


String API = "http://10.0.2.2:52511";
public void CallService(View view){

        RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(API).build();
        gitapi …
Run Code Online (Sandbox Code Playgroud)

android androidhttpclient retrofit

10
推荐指数
3
解决办法
4万
查看次数

无法解析主机:URL没有与主机名关联的地址

我有一个Web服务调用来关闭一个JSON对象,它只有在我有IP地址而不是主机名时才有效.我使用IP地址很好,但现在我需要拥有主机名.

这是我的代码

    StringBuilder stringBuilder = new StringBuilder();
    HttpParams httpParams = new BasicHttpParams();
    HttpConnectionParams.setConnectionTimeout(httpParams, 3000);
    HttpConnectionParams.setSoTimeout(httpParams, 7000);
    DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
    HttpPost httpost = new HttpPost(URL);
    try {
        HashMap<String,String>  params = new HashMap<String,String>();
        // Login info
        params.put("username", edtUserName.getText().toString()); 
        params.put("password", edtPass.getText().toString());
        params.put("deviceOS", "Android");
        params.put("deviceOSVersion", android.os.Build.VERSION.RELEASE);
        params.put("language", "0");
        //JSON object holding the login info
        JSONObject holder = new JSONObject(params);

        StringEntity se = new StringEntity(holder.toString());

        httpost.setEntity(se);

        httpost.setHeader("Content-Type", "application/json");
        //Executing the call
        HttpResponse response = httpClient.execute(httpost);
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode(); …
Run Code Online (Sandbox Code Playgroud)

android unknown-host androidhttpclient

9
推荐指数
1
解决办法
4万
查看次数

AndroidHttpClient调用android.net.http.AndroidHttpClient.isMmsRequest的Nullpointerexception

客户报告了一个奇怪的错误.在AsyncTask中执行正常的AndroidHttpClient.execute()时,应用程序崩溃并获得以下堆栈跟踪

java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NullPointerException
at android.net.http.AndroidHttpClient.isMmsRequest(AndroidHttpClient.java:257)
at android.net.http.AndroidHttpClient.checkMmsSendPermission(AndroidHttpClient.java:290)
at android.net.http.AndroidHttpClient.execute(AndroidHttpClient.java:296)
at com.xxx.xxx.MyClass$MyHandler.doWork(MyClass.java:325)
at  com.xxx.xxx.NetworkRequestHandler$AsyncTaskForRequestHandler.doInBackground(NetworkRequestHandler.java:532)
at com.xxx.xxx.utils.network.NetworkRequestHandler$AsyncTaskForRequestHandler.doInBackground(NetworkRequestHandler.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
... 3 more
Run Code Online (Sandbox Code Playgroud)

为什么调用checkMMSSendPermission和isSmsRequest?我们根本没有使用彩信和短信,而且应用程序没有这些权限,我想这就是它崩溃的原因.这适用于所有其他99.9%的用户.

代码看起来像这样

AndroidHttpClient client = AndroidHttpClient.newInstance(null);
        InputStream inputStream = null;
        try
        {
            HttpPost request = new HttpPost(urlString);
            prepareURLRequest(request);
            HttpResponse response = client.execute(request);
            mResultStatus = response.getStatusLine().getStatusCode();
            inputStream = response.getEntity().getContent();
...
Run Code Online (Sandbox Code Playgroud)

欢迎任何帮助

更新

这似乎只影响索尼Xperia Z,Z1和ZR手机.显然,在收到Android 4.3更新后问题就开始出现了.没有人使用这些手机可以使用我们的应用程序,但除此之外,它的工作原理.

android sony androidhttpclient sony-xperia

8
推荐指数
1
解决办法
1329
查看次数

HttpURLConnection.getInputStream很慢

与使用相同服务器端服务的iPhone App相比,HttpURLConnection.getInputStream需要花费大量时间。

以下代码用于该服务:

         date= new java.util.Date();             
         Log.d("time","Time Stamp before posting  "+new Timestamp(date.getTime()));

         URL ur= new URL(url);           
         HttpURLConnection conn = (HttpURLConnection) ur.openConnection();
         conn.setRequestProperty("Connection", "close");
         conn.setReadTimeout(10000);
         conn.setConnectTimeout(15000);
         conn.setRequestMethod("POST");
         conn.setDoInput(true);
         conn.setDoOutput(true);             
         OutputStream os = conn.getOutputStream();
         BufferedWriter writer = new BufferedWriter(
                 new OutputStreamWriter(os, "UTF-8"));
         writer.write(getQuery(nameValuePairs));
         writer.close();
         os.close();
         conn.connect();

         StringBuffer response=null;             
         try{           
             Log.d("time","Time Stamp bfr InputStream  "+new Timestamp(date.getTime()));    

             InputStream is = conn.getInputStream();

             date= new java.util.Date();             
             Log.d("time","Time Stamp aftr InputStream  "+new Timestamp(date.getTime()));            

             BufferedReader rd = new BufferedReader(new InputStreamReader(is));
             String line;
             response = new StringBuffer(); 
             while((line = …
Run Code Online (Sandbox Code Playgroud)

android inputstream httpurlconnection androidhttpclient

6
推荐指数
1
解决办法
7400
查看次数

有什么可以替换http弃用的方法?

我正在按照教程进行操作,并且我已经批准了很多代码.

ArrayList<NameValuePair> dataToSend = new ArrayList<>();
dataToSend.add(new BasicNameValuePair("name", user.name));
dataToSend.add(new BasicNameValuePair("age", user.age));

HttpParams httpRequestParams = new BasicHttpParams();
HttpConnectionParamas.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);
HttpConnectionParamas.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);

HttpClient client = new DefaultHttpClient(httpRequestParams);
HttpPost post = new HttpPost(SERVER_ADDRESS + "Register.php");

try{
    post.setEntity(new UrlEncodedFormEntity(dataToSend));
    client.execute(post);
}catch (Exception e){
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

和另一个返回结果的POST方法

    HttpResponse httpResponse = client.execute(post);

    HttpEntity entity = httpResponse.getEntity();
    String result = EntityUtils.toString(entity);
    JSONObject jObject = new JSONObject(result);
Run Code Online (Sandbox Code Playgroud)

我发现,我可以代替NameValuePair

ContentValues values = new ContentValues();
values.put("name", user.name);
values.put("age", user.age + "");
Run Code Online (Sandbox Code Playgroud)

但我不知道其他人.

android androidhttpclient android-studio

6
推荐指数
2
解决办法
1万
查看次数

获取改造网站的HTML - Android?

我怎样才能获得一个网站的HTML retrofit

例如,我有这个网址,我需要得到这个网址的HTML,我怎么能加载更多.

贝娄是我的代码:

MainActivity.java:

public class MainActivity extends AppCompatActivity {
    TextView txt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txt = (TextView) findViewById(R.id.txt);

        OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
                .build();

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://www.instagram.com/elde0596/")
                .addConverterFactory(GsonConverterFactory.create())
                .client(okHttpClient)
                .build();

        final Interface_Web request = retrofit.create(Interface_Web.class);
        Call<ResponseBody> call = request.getHtml();
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                txt.setText(response.body().source().toString());
                Log.i("SDADASDAWEQ", "A " + response.body().toString());
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Log.i("SDADASDAWEQ", "B …
Run Code Online (Sandbox Code Playgroud)

android androidhttpclient retrofit retrofit2

6
推荐指数
1
解决办法
6212
查看次数