相关疑难解决方法(0)

使用带HttpURLConnection的POST发送文件

由于Android开发人员建议使用HttpURLConnection该类,我想知道是否有人可以为我提供一个很好的示例,说明如何通过POST将位图"文件"(实际上是内存中的流)发送到Apache HTTP服务器.我对cookie或身份验证或任何复杂的东西不感兴趣,但我只想拥有一个可靠的逻辑实现.我在这里看到的所有例子看起来更像是"让我们试试这个,也许它有效".

现在,我有这个代码:

URL url;
HttpURLConnection urlConnection = null;
try {
    url = new URL("http://example.com/server.cgi");

    urlConnection = (HttpURLConnection) url.openConnection();

} catch (Exception e) {
    this.showDialog(getApplicationContext(), e.getMessage());
}
finally {
    if (urlConnection != null)
    {
        urlConnection.disconnect();
    }
}
Run Code Online (Sandbox Code Playgroud)

showDialog应该只显示一个AlertDialog(如果URL无效?).

现在,让我们说我生成一个这样的位图:Bitmap image = this.getBitmap()在一个派生的控件中View,我想通过POST发送它.实现这样的事情的正确程序是什么?我需要使用哪些课程?我可以HttpPost这个例子中使用吗?如果是这样,我将如何构建InputStreamEntity我的位图?我觉得要首先将位图存储在设备上的文件中是令人反感的.


我还要提一下,我真的需要将原始位图的每个未经改变的像素发送到服务器,因此我无法将其转换为JPEG.

post android client-server http httpurlconnection

119
推荐指数
4
解决办法
15万
查看次数

使用Volley和没有HttpEntity工作POST多部分请求

这不是一个真正的问题,但是,我想在这里分享一些我的工作代码供您参考.

据我们所知,HttpEntityAPI22已弃用,自API23以来已完全删除.目前,我们无法再访问Android Developer上的HttpEntity Reference(404).因此,以下是我使用Volley和没有HttpEntity的POST多部分请求的工作示例代码.它正在运行,经过测试Asp.Net Web API.当然,代码可能只是发布两个现有可绘制文件的基本示例,也不是所有情况下的最佳解决方案,也不是很好的调优.

MultipartActivity.java:

package com.example.multipartvolley;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

import com.android.volley.NetworkResponse;
import com.android.volley.Response;
import com.android.volley.VolleyError;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;


public class MultipartActivity extends Activity {

    private final Context context = this;
    private final String twoHyphens = "--";
    private final String lineEnd = "\r\n";
    private final String boundary = …
Run Code Online (Sandbox Code Playgroud)

java android asp.net-web-api android-volley httpentity

103
推荐指数
3
解决办法
7万
查看次数

警告:无法找到可选库:org.apache.http.legacy发生在目标21中

我见过这个问题

为什么警告:无法找到可选库:org.apache.http.legacy发生?

还有更多,但问题没有解决,我使用目标23,我不想,所以现在当我回到目标21我收到此错误:

警告:无法找到可选库:org.apache.http.legacy

是的我有optional.json文件,是的,我已经尝试将apache放在我的lib文件夹中,但是这个错误仍然会发生,我被困在这很长时间了.

api android target gradle

0
推荐指数
1
解决办法
3630
查看次数