首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RestFul接口调用post方法

RestFul接口调用post方法
EN

Stack Overflow用户
提问于 2015-04-10 19:31:54
回答 2查看 647关注 0票数 0

我对如何发布数据有疑问,我的REST端点URL如下所示:

代码语言:javascript
复制
http://my.domain.com/Upload/{ID}/{IMAGE_CONTENT_AS_BYTE_ARRAY}

我需要将图像内容作为字节数组字符串发送到此端点方法。但由于字符长度可以超过2000个字符的长度,我可能无法发送的图像,如果它的巨大,因为一切都作为URL字符串的一部分。如何放入IMAGE_CONTENT_AS_BYTE_ARRAY的数据。另外,我没有任何关键字,所以我可以把它放在namevalue pair.Please suggest中!

EN

回答 2

Stack Overflow用户

发布于 2015-04-10 19:49:09

尝试以下代码:

代码语言:javascript
复制
MultipartEntityBuilder multipartEntity;

    String URL = "My server url";

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
     Bitmap   bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        bitmap.compress(CompressFormat.JPEG, 75, byteArrayOutputStream); 
        byte[] byteData = byteArrayOutputStream.toByteArray();

        ByteArrayBody byteArrayBody = new ByteArrayBody(byteData, "image"); // second parameter is the name of the image )

        // send the package
        multipartEntity = MultipartEntityBuilder.create();
        multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
        multipartEntity.addPart("image", byteArrayBody);
票数 2
EN

Stack Overflow用户

发布于 2015-04-10 19:50:26

上传图像或文件的最佳方式是使用多部分数据格式。这是一个上传图片的示例代码。

代码语言:javascript
复制
public static void postMultiPart(String url, File image) 
{
    final android.net.http.AndroidHttpClient client = android.net.http.AndroidHttpClient.newInstance("sample");
    // enable redirects
    HttpClientParams.setRedirecting(client.getParams(), true);

    final String encoded_url = encodeURL(url);
    final org.apache.http.client.methods.HttpPost post = new org.apache.http.client.methods.HttpPost(encoded_url);


    MultipartEntity mpEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
    mpEntity.addPart("profile", new FileBody(image));
    post.setEntity(mpEntity);

    org.apache.http.HttpResponse response;
    try {
        response = client.execute(post);
        final int statusCode = response.getStatusLine().getStatusCode();
        if (!(statusCode == org.apache.http.HttpStatus.SC_OK || statusCode == org.apache.http.HttpStatus.SC_CREATED)) {
            Log.i("Error:","Check....."+"Error " + statusCode + " while posting data to " + encoded_url + "\nreason phrase: " + response.getStatusLine().getReasonPhrase());

            return;
        }

         Log.i("SUCCESS:","Check....."+Base64.encodeToString(md.digest(), Base64.DEFAULT));

    } catch (IOException e) {

    } finally {
        client.close();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29560357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档