在Android上的tumbler上传来自sd-card的图像

时间:2014-02-12 20:35:30

标签: android post request tumblr photo

我使用http:// ...网址上传了图片。但我不想使用URL。我想从移动设备的本地SD卡上传不倒翁上的图像。 我尝试了所有这些解决方案Uploading Images to tumblr API from Android,但没有任何方法可以帮助我。

我按照这样的网址发布了图片: -

File fil = savebitmap(pattern_a);
        HttpPost hpost = new HttpPost("http://api.tumblr.com/v2/blog/"
                + strBlogName.replace(" ", "%20") + ".tumblr.com/post");
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);

nameValuePairs.add(new BasicNameValuePair("type", "photo"));
            nameValuePairs.add(new BasicNameValuePair("caption", "hello"));
            nameValuePairs.add(new BasicNameValuePair("source","http://pchtanks.com/wp-content/uploads/2013/10/tropical-fish11.jpg"));

更新

我正在使用此代码

     nameValuePairs.add(new BasicNameValuePair("type", "photos"));
     nameValuePairs.add(new BasicNameValuePair("set_total", "1"));
             nameValuePairs.add(new BasicNameValuePair("name", "Akanksha"));
             nameValuePairs.add(new BasicNameValuePair("caption", "Hello yar"));

             nameValuePairs.add(new BasicNameValuePair("original","0"));
             nameValuePairs.add(new BasicNameValuePair("data", fil.getAbsolutePath().toString()));
             nameValuePairs.add(new BasicNameValuePair("source", encodedImage));
//              localContentValues2.put("tumblr_post_id", Long.valueOf(paramLong));
             nameValuePairs.add(new BasicNameValuePair("width", String.valueOf(pattern_a.getWidth())));
             nameValuePairs.add(new BasicNameValuePair("height", String.valueOf(pattern_a.getHeight())));
                localArrayList.add(nameValuePairs);

hpost.setEntity(new UrlEncodedFormEntity(nameValuePairs));



    consumerconsumer.sign(hpost);

    DefaultHttpClient client = new DefaultHttpClient();
    org.apache.http.HttpResponse resp = null;
    resp = client.execute(hpost);

    result = EntityUtils.toString(resp.getEntity());
    PrintLog.LOGV("Result : " + result);

我得到了像这样的encodedImage: -

ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    pattern_a.compress(Bitmap.CompressFormat.JPEG, 100, stream); 
    byte[] byteArray = stream.toByteArray(); 
    String encodedImage = Base64.encodeToString(byteArray, Base64.DEFAULT);

我收到错误: - 住宿请求,帖子不能为空。

我想我在参数中遗漏了一些内容,或者我发送了任何错误的标签。

任何机构都有任何解决方案 我已经下载了jumblr jar文件。但我不知道如何使用它。没有jumbler,我的工作是否可行。请回复。

1 个答案:

答案 0 :(得分:0)

源不期望URL。它期望URI。您尝试过:nameValuePairs.add(new BasicNameValuePair("source","file:///sdcard/img.png"));

此外,您可以指定data而不是源,并使用bytebuffer提供图像的实际字节