- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用 Volley
库并将图像上传到服务器。该库应该在独立模式下执行此过程,但收到以下错误消息:
java.net.SocketException: sendto failed: ECONNRESET (Connection reset by peer)
这可能是服务器端配置错误?我尝试使用以下代码上传 jpeg
图像:
private void uploadImage(){
final ProgressDialog loading = ProgressDialog.show(this,"Uploading...","Please wait...",false,false);
StringRequest stringRequest = new StringRequest(Request.Method.POST, UPLOAD_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String s) {
loading.dismiss();
Toast.makeText(PhotoActivity.this, s , Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
loading.dismiss();
Toast.makeText(PhotoActivity.this, volleyError.getMessage().toString(), Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
String image = getStringImage(bitmap);
String name = editTextName.getText().toString().trim();
Map<String,String> params = new Hashtable<String, String>();
params.put(KEY_IMAGE, image);
params.put(KEY_NAME, name);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
最佳答案
只是为了确定,您需要将 uploadImage()
更改为如下内容:
private void uploadImage(){
final ProgressDialog loading = ProgressDialog.show(this,"Uploading...","Please wait...",false,false);
//here you use your custom multi-part-request as I suggested in the comment:
ImageUploadRequest imageUploadReq = new ImageUploadRequest(UPLOAD_URL,
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
loading.dismiss();
Toast.makeText(PhotoActivity.this, volleyError.getMessage().toString(), Toast.LENGTH_LONG).show();
}
},
new Response.Listener<String>() {
@Override
public void onResponse(String s) {
loading.dismiss();
Toast.makeText(PhotoActivity.this, s , Toast.LENGTH_LONG).show();
}
}, yourImageFile);
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(imageUploadReq);
}
您的 ImageUploadRequest
类的定义如已接受的答案中所示 here像这样:
public class ImageUploadRequest<T> extends Request<T> {
private static final String FILE_PART_NAME = "file";
private MultipartEntityBuilder mBuilder = MultipartEntityBuilder.create();
private final Response.Listener<T> mListener;
private final File mImageToUpload;
protected Map<String, String> headers;
public ImageUploadRequest(String uploadURL, ErrorListener errorListener, Listener<T> listener, File imageFileToUpload){
super(Method.POST, uploadURL, errorListener);
mListener = listener;
mImageToUpload = imageFileToUpload;
//call the helper method to build the multipart entity
buildMultipartEntity();
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = super.getHeaders();
if (headers == null || headers.equals(Collections.emptyMap())) {
headers = new HashMap<String, String>();
}
headers.put("Accept", "application/json");
return headers;
}
private void buildMultipartEntity(){
mBuilder.addBinaryBody(FILE_PART_NAME, mImageToUpload, ContentType.create("image/jpeg"), mImageToUpload.getName());
mBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
mBuilder.setLaxMode().setBoundary("xx").setCharset(Charset.forName("UTF-8"));
}
@Override
public String getBodyContentType(){
String contentTypeHeader = mBuilder.build().getContentType().getValue();
return contentTypeHeader;
}
@Override
public byte[] getBody() throws AuthFailureError{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
mBuilder.build().writeTo(bos);
} catch (IOException e) {
VolleyLog.e("IOException writing to ByteArrayOutputStream bos, building the multipart request.");
}
return bos.toByteArray();
}
@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
T result = null;
return Response.success(result, HttpHeaderParser.parseCacheHeaders(response));
}
@Override
protected void deliverResponse(T response) {
mListener.onResponse(response);
}
}
我对 Upload an image using Google Volley 做了一些小的改编。到你的具体情况。我希望这对您有所帮助,并且其他人也可能会觉得它有用。
关于安卓 Volley ECONNRESET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37155789/
尝试从终端运行命令 heroku run python manage.py migrate 时,出现以下错误。 ECONNRESET:读取ECONNRESET 我关注了the link在heroku
我开发了一个 Firebase Cloud 函数,可以处理对上传图像的多种操作。 我的代码基于 this documentation article和 this Cloud Function exam
我尝试使用 Volley 库并将图像上传到服务器。该库应该在独立模式下执行此过程,但收到以下错误消息: java.net.SocketException: sendto failed: ECONNRE
我的程序使用字符串数组解析带有HTTPS代理的文本文档。然后,它向ipify.org发出GET请求。 但是,我的程序抛出了:Error: read ECONNRESET at TCP.onStream
我尝试通过 npm 安装 Electron 并收到此错误: 怎么解决呢? 最佳答案 您可以设置自定义镜像以从单独的镜像下载 Electron 。只需在 npm install 之前添加此内容,或在某个
我正在尝试将我的 Nodejs 应用程序连接到 MongoDB Atlas,但它抛出错误。 这是错误消息: This is the error in the catch block: Mongoose
我有一个在 Azure Web 应用程序上托管的 ExpressJS 应用程序,并启用了“始终在线”功能。 我正在使用 bookshelfjs 连接到托管在 Azure 上另一个虚拟服务器中的 MyS
这是我的下载代码: File file = new File(dir, fileName); HttpClient httpclient = new D
我在应用程序中使用 Express.js,但在向 adobe Analytics API 发出发布请求时收到错误。 我尝试添加 server.timeout 但它无法修复它...... 这是错误消息:
我在执行 GET 请求时遇到错误。 Error: read ECONNRESET at TLSWrap.onStreamRead (internal/stream_base_commons.j
我们有基于 Cucumber 的 UI 自动化测试框架。最近我们已经从 Ruby 1.9.x 迁移到 2.2.0,之后我们在通过测试框架登录我们的应用程序时遇到了问题。它说 SSL 连接重置问题。 错
以下代码有时会生成“连接被对等方重置”错误。谁能告诉我如何处理这个异常? doc = Nokogiri::HTML(open(url)) Connection reset by peer (Errno
我的很多 node.js 进程都因 ECONNRESET 错误而崩溃。这是我可以看到的输出: node.js:50 throw e; ^ Error: ECONNRESET, Conn
我是编码的新手,我需要一些帮助来解决我遇到的一个错误。 我正在运行一个 NodeJS 应用程序(一个 Discord.js 机器人),我的机器人具有在用户键入特定命令时将用户 ID 注册到 MySQL
我的客户端 (PHP) 反复向 Node.js net.Server 发送消息,并收到意外错误。 服务器部分: socket.on('error',function(err){ logger.
我知道对于 TCP 套接字 ECONNRESET 与 RST 数据包有关。但是我在 read() 和 write() 调用上也看到了 AF_LOCAL 套接字的 ECONNRESET 错误。这是什么意
我已经配置了一个fluentd sidecar容器来将日志发送到kafka。 这是我的fluent.conf文件: @type forward bind 127.0.0.1 port 2
我在 Azure 上的 Application Insight 中遇到此错误: Microsoft.AspNet.Server.Kestrel.Networking.UvException: Erro
我制作了很多机器人,一些在我的个人笔记本电脑上,一些在 Heroku 上,但是在这两种情况下,我都收到了终止 node.js 的错误,所以我使用了 bot.on('error ', console.e
我正在使用 Rails 应用程序和 MiniFB Gem 来调用 Facebook Api。我得到以下异常 Errno::ECONNRESET: Connection reset by peer 以
我是一名优秀的程序员,十分优秀!