gpt4 book ai didi

android - LoopJ AndroidAsyncHttp 无法使用基本身份验证发布图像

转载 作者:行者123 更新时间:2023-11-30 01:59:24 27 4
gpt4 key购买 nike

我正在尝试使用 POST 方法将图像上传到服务器上的 PHP 文件。我一直在尝试使用 LoopJ AndroidAsyncHttp 来做到这一点,但没有成功。服务器还需要基本的身份验证用户名和密码。到目前为止,我已经能够成功地发布常规数据参数(这些是简单的字符串键值对,例如:“name”:“joe”)并从服务器获得响应。但是,当我尝试将图像附加到 POST 请求时,请求失败并出现以下错误:

Error Message: null
Error Cause: org.apache.http.client.NonRepeatableRequestException: Cannot retry request with a non-repeatable request entity

我使用的代码遵循 http://loopj.com/android-async-http/ 中给出的示例很接近。这是我正在使用的代码:

RequestParams params = new RequestParams();
params.put("name",name);


String path = "/path/to/img";
File myFile = new File(path, "picture.png");

if( myFile.exists() ) {
try {
params.put("picture", myFile);
} catch(FileNotFoundException e) {
Log.d("App","Error Attaching Picture: " + e.toString());
}
} else {
Log.d("App","File DOES NOT exist");
}


String urlString = "url-to-server";
AsyncHttpClient client = new AsyncHttpClient();
client.setBasicAuth("User", "Pass");
client.post(urlString, params, new AsyncHttpResponseHandler(){
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
super.onSuccess(statusCode, headers, responseBody);
}

@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
super.onFailure(statusCode, headers, responseBody, error);
Log.d("App","Upload Failed!");
Log.d("App","Error Message: " + error.getMessage());
Log.d("App", "Error Cause: " + error.getCause());
}

@Override
public void onStart() {
super.onStart();
}
});

那么我在这里做错了什么?我还仔细检查过,我正在阅读以获取图像的文件确实存在并且其中确实包含数据,因此我已将其排除在外。我一直在努力解决这个问题太久了。在此先感谢任何可以提供帮助的人!

最佳答案

这是 AsyncHTTPClient 旧 1.4.4 版本中的一个错误。可以通过更新到 1.4.8 版本来修复。在 dependencies 部分下的 build.gradle 文件中,它应该如下所示:

compile 'com.loopj.android:android-async-http:1.4.8'

关于android - LoopJ AndroidAsyncHttp 无法使用基本身份验证发布图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31731869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com