标签: loopj

使用android-async-http(loopj)发布JSON/XML

我正在使用android-async-http而且非常喜欢它.我遇到了POST数据的问题.我必须以下列格式将数据发布到API: -

<request>
  <notes>Test api support</notes>
  <hours>3</hours>
  <project_id type="integer">3</project_id>
  <task_id type="integer">14</task_id>
  <spent_at type="date">Tue, 17 Oct 2006</spent_at>
</request>
Run Code Online (Sandbox Code Playgroud)

根据文档,我尝试使用它RequestParams,但它失败了.这是其他任何方式吗?我也可以发布等效的JSON.有任何想法吗?

rest post android loopj android-async-http

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

使用loopj AsyncHttpClient获取SocketTimeoutExceptions ...我可以设置超时值吗?

当使用loopj AsyncHttpClient库时,我在发出请求时不断获取java.net.SocketTimeoutExceptions(见下文).

我可以设置一些超时值吗?

注意:我发布这个是希望为其他人提供一些帮助.我(愚蠢地)努力寻找解决方案一段时间.

堆栈跟踪:

java.net.SocketTimeoutException
at java.net.PlainSocketImpl.read(PlainSocketImpl.java:491)
at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191)
at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:82)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:180)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:428)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:76)
at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:95)
at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:57)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
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:856)
Run Code Online (Sandbox Code Playgroud)

android httpclient loopj

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

Android loopj Async Http在1.4.5更新后崩溃

Android loopj Async Http lib的新更新已经发布,并且它们发生了很大变化.现在你需要手动设置,Looper.prepare()否则它默认使用同步模式而不是异步.我没有得到我需要设置的地方.

logcat的

07-09 08:16:18.775: W/AsyncHttpResponseHandler(6606): Current thread has not called Looper.prepare(). Forcing synchronous mode.
Run Code Online (Sandbox Code Playgroud)

在那个消息之后它完全崩溃了

07-09 08:16:18.835: E/AndroidRuntime(6606): FATAL EXCEPTION: AsyncTask #1
07-09 08:16:18.835: E/AndroidRuntime(6606): java.lang.RuntimeException: An error occured while executing doInBackground()
07-09 08:16:18.835: E/AndroidRuntime(6606):     at android.os.AsyncTask$3.done(AsyncTask.java:278)
07-09 08:16:18.835: E/AndroidRuntime(6606):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
07-09 08:16:18.835: E/AndroidRuntime(6606):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
07-09 08:16:18.835: E/AndroidRuntime(6606):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
07-09 08:16:18.835: E/AndroidRuntime(6606):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-09 08:16:18.835: E/AndroidRuntime(6606):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
07-09 08:16:18.835: E/AndroidRuntime(6606):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-09 08:16:18.835: E/AndroidRuntime(6606):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-09 08:16:18.835: …
Run Code Online (Sandbox Code Playgroud)

java android asynchronous httprequest loopj

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

适用于Android的自签名证书和loopj

我正在尝试使用loopj来进行异步 HTTP请求.工作得很好,除非我尝试使用自签名证书访问https站点.我明白了

javax.net.ssl.SSLPeerUnverifiedException: No peer certificate.
Run Code Online (Sandbox Code Playgroud)

我想默认的ssl选项可以覆盖使用setSSLSocketFactory(SSLSocketFactory sslSocketFactory)方法,但我不知道该怎么做,或者它可能根本不是正确的方法.

请建议我该如何解决这个问题?

android loopj

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

使用WP API v1和v2打破Android Loopj图像上传

我正在使用Loopj将文件上传到我的WordPress站点和WP REST API v1和/或v2(相同的结果).

身份验证很棒,标题很棒,文件"上传"但是当我在我的WordPress后端检查它时...图像或文件被破坏了.

Android部分是这样的:

File myFile = new File(finalpath);

String name = Utils.getLastBitFromUrl(finalpath);

String extension = Utils.getFileExtention(finalpath);

client.setBasicAuth("myusername", "mypassword", new AuthScope("mywebsite.com", 80, AuthScope.ANY_REALM));

     client.addHeader("Content-Disposition", "filename=" + name);
     client.addHeader("Content-Type", "image/" + extension);

     try {
        params.put("data", myFile);
     } catch (FileNotFoundException e) {
           e.printStackTrace();
     }
     // or: http://mywebsite.com/wp-json/wp/v2/media for v2
     client.post("http://mywebsite.com/wp-json/media", params, new AsyncHttpResponseHandler() {

          int count = 0;

          @Override
          public void onStart() {
            prgDialog = new ProgressDialog(MainActivity.this);
            prgDialog.setMessage("Uploading Image...");
            prgDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            prgDialog.setMax(100);
            prgDialog.show();
          }

          @Override
          public void onProgress(long bytesWritten, long totalSize) …
Run Code Online (Sandbox Code Playgroud)

wordpress android loopj wp-api

11
推荐指数
1
解决办法
413
查看次数

Loopj Android Async Http - onFailure没有被解雇

我正在使用来自loopj的伟大的异步http库,但我遇到了一个小麻烦.

如果用户没有互联网连接或丢失连接,该应用程序将不会返回任何内容.这部分是预期的,但它也不会触发onFailure方法.

此外,我有一个互联网连接时使用的代码确实有效,所以在服务器端没有问题.

这是一些被剥离到最低限度的代码.它也不起作用(我也测试了这个)

String url = getString(R.string.baseurl) + "/appconnect.php";
client.getHttpClient().getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);
client.get(url, null, new JsonHttpResponseHandler()
{
    @Override
    public void onSuccess(JSONArray response)
    {
        Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onFailure(Throwable e, JSONArray errorResponse)
    {
        Toast.makeText(getApplicationContext(), "Failure", Toast.LENGTH_SHORT).show();
    }
});
Run Code Online (Sandbox Code Playgroud)

谢谢,阿什利

java android asynchronous http loopj

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

Android Studio:解决重复的类

当我run在Android设备上尝试我的Android应用程序时,gradle控制台报告以下错误:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/loopj/android/http/AsyncHttpClient$1.class
Run Code Online (Sandbox Code Playgroud)

当我搜索"AsyncHttpClient"类时,我发现它确实存在于两个不同的位置:

/Users/Afflatus/.gradle/caches/modules-2/files-2.1/com.loopj.android/android-async-http/1.4.9/5d171c3cd5343e5997f974561abed21442273fd1/android-async-http-1.4.9-sources.jar!/com/loopj/android/http/AsyncHttpClient.java

/Users/Afflatus/.ideaLibSources/android-async-http-1.4.9-sources.jar!/com/loopj/android/http/AsyncHttpClient.java
Run Code Online (Sandbox Code Playgroud)

第一条路径似乎表明它是一个"缓存"文件......所以我试过了invalidating & restarting my cache,但是在gradle重建之后这两个文件仍然存在,我尝试run了应用程序.我已经在备用帖子中看到它可以通过删除其中一个文件来解决...所以我去了缓存位置并删除了"1.4.9"文件夹中找到的所有文件...在重新打开Android Studio后不幸,一个新的缓存文件被创建,我得到相同的错误.

其他帖子(这里,这里,这里这里)建议如果我将"./gradlew clean"添加到根目录,它将仅为运行重建gradle(据我所知).所以我也尝试过这样做:

在此输入图像描述

这使我的应用程序的文件夹看起来像这样:

在此输入图像描述

但不幸的是,这并没有帮助我仍然得到同样的错误.我究竟做错了什么?我该怎么办?

android gradle loopj build.gradle android-gradle-plugin

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

AsyncHttpRequest POST不触发回调(android-async-http by loopj)

我正在尝试使用loopj的异步http库向服务器发送POST .以下代码非常标准,但我无法使其工作.

我调试了很多,并检查了以下内容:

  • 网址是正确的.
  • 参数是正确的,它们被正确存储到params变量中.

似乎HttpResponse response = client.execute(request, context);AsyncHttpRequest.makeRequest()请求中调用时不包含任何参数:

编辑:看了一下代码后,似乎POST参数可能包含在实体或标题组中.

在此输入图像描述

但真正的问题是我没有得到任何回调(见下面的代码).在if后声明client.execute()通话不会被调用(断点不会被触发).

RequestParams params = new RequestParams();
params.put("loginid", "user");
params.put("password", "pass");
params.put("deviceid", "deviceid");

AsyncHttpClient client = new AsyncHttpClient();
client.post(MDSettings.BASE_URL + "/user/login", params, new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
        Log.d(MDSettings.TAG, "MDConnectionManager - login - response: " + response);
        singleton.connectionSuccessful(response, returnIndex);
    }

    @Override
    public void onFailure(Throwable error, String content) {
        Log.d(MDSettings.TAG, "MDConnectionManager - login - content: " + …
Run Code Online (Sandbox Code Playgroud)

post android asynchronous loopj

7
推荐指数
1
解决办法
5735
查看次数

Android loopj asynchttpclient返回响应

在我的一个项目中,我正在使用loopj asynchttpclient与我的网站进行通信.沟通部分运作良好,也得到了回应

我的活动看起来像

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        WebRequest test=new WebRequest();
        test.callService();
}
Run Code Online (Sandbox Code Playgroud)

WebRequest类为

public class WebRequest extends Activity {


    public void callService(){


        AsyncHttpClient client = new AsyncHttpClient();
        client.post("http://domain.com/dp/index.php", new AsyncHttpResponseHandler() {


            @Override
            public void onSuccess(String response) {
                Log.v("P",response);
            }

            @Override
            public void onFailure(Throwable e, String response) {
                 Log.v("PS",e.toString());
            }

    });
    }




}
Run Code Online (Sandbox Code Playgroud)

我很困惑如何将响应返回到主活动,以便我可以从该响应创建列表视图.

我是新来的请帮助我提前谢谢

android web-services android-layout android-asynctask loopj

7
推荐指数
1
解决办法
6349
查看次数

从Uri类型android创建文件

我正在尝试从图库中选择图像然后将此图像转换为文件并通过HttpPost发送它,但我总是得到它FileNotFoundException.我的代码:

选择照片

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == Activity.RESULT_OK) {
            if (requestCode == 1) {
                // currImageURI is the global variable I’m using to hold the content:
                currImageURI = data.getData();
                //Save the currImageUri (URI type) to global variable.
                photosHolder.getInstance().setOneIm(currImageURI);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

转换照片

                // First Try
                File myFile = new File((photosHolder.getInstance().getOneIm()).toString());
                params.put("visit_report[photos_attributes][0][file]",myFile); **The exception Raised here
// second try 
                File myFile2 = new File((photosHolder.getInstance().getOneIm()).getPath());
                params.put("visit_report[photos_attributes][1][file]",myFile2); ** Also here
Run Code Online (Sandbox Code Playgroud)

在调试时,这些是myFiles Value:

mFile : …
Run Code Online (Sandbox Code Playgroud)

java android uri file loopj

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