这不是一个真正的问题,但是,我想在这里分享一些我的工作代码供您参考.
据我们所知,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) 我正在按照解决方案使用Android Volley从How to multipart数据中使用 volley发送多部分请求.但是,自SDK 22以来,httpsntity已被弃用,并且已在SDK 23上完全删除.
解决方案是使用openConnection,就像现在在Android上弃用HttpEntity一样,有什么替代方案?,但我不知道如何将它用于多部分请求
我正在使用 akka.http.scaladsl.model.HttpResponse、HttpEntity。
得到 response 后,它是格式的 responseEntity 类型 (Content-type: 'application/json', {MyJSONHERE})。有没有办法从实体中提取我的json。
我尝试了 entity.getDataBytes ,它以 ByteString 格式提供实体的内容。我想正确读取 JSON 并解析它。有人可以指导我吗?
我试图从http响应中获取图像,但无法将流转换为位图.请让我知道,我在这里失踪了什么.
仅供参考 - 图像内容作为原始二进制文件及其jpeg图像接收.
程序如下:
在postExecute的AsyncTask中执行此操作
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(endpoint);
// Adding Headers ..
// Execute the request
HttpResponse response;
try {
response = httpclient.execute(httpget);
if (response.getStatusLine().getStatusCode() == 200) {
// Get hold of the response entity
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
return instream;
// instream.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在postExecute的AsyncTask中执行此操作
if (null != instream) {
Bitmap bm = BitmapFactory.decodeStream(instream);
if(null …Run Code Online (Sandbox Code Playgroud) 在我的代码中,我经常通过以下方式将 HttpEntity 与 ResponseEntity 一起使用:
HttpEntity<?> request = new HttpEntity<String>(myObject, headers);
ResponseEntity<String> response = restTemplate.exchange("someurl", HttpMethod.POST, request, String.class);
Run Code Online (Sandbox Code Playgroud)
进而
response.getBody()
Run Code Online (Sandbox Code Playgroud)
我一直在重复这段代码,我想知道是否有可能创建一个通用方法,当我向它提供我想要发送的对象、一个 url 和一个 HttpMethod 类型时,它允许我获取 response.body()。大多数情况下,响应主体是一个字符串,但也可以是一个对象。
httpentity ×5
android ×3
httpresponse ×2
java ×2
akka ×1
bitmap ×1
inputstream ×1
json ×1
scala ×1
spring ×1