Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何发布包含多部分/表单数据的facebook照片_Android_Facebook_Facebook Graph Api_Publish_Multipartform Data - Fatal编程技术网

Android 如何发布包含多部分/表单数据的facebook照片

Android 如何发布包含多部分/表单数据的facebook照片,android,facebook,facebook-graph-api,publish,multipartform-data,Android,Facebook,Facebook Graph Api,Publish,Multipartform Data,使用Android应用程序,我正在尝试使用graph api引用将照片发布到facebook墙上: 我可以轻松地将图片传递图像url上传到“源”,但我想从FileInputStream发送多部分/表单数据,而无需上传到服务器 有人能告诉我如何从“照片,编码为表单数据”生成字符串吗? 我尝试过这种方法,但似乎不起作用: static final String GetMultipartFormData(InputStream fileInputStream) { StringBuilder

使用Android应用程序,我正在尝试使用graph api引用将照片发布到facebook墙上:

我可以轻松地将图片传递图像url上传到“源”,但我想从FileInputStream发送多部分/表单数据,而无需上传到服务器

有人能告诉我如何从“照片,编码为表单数据”生成字符串吗? 我尝试过这种方法,但似乎不起作用:

static final String GetMultipartFormData(InputStream fileInputStream)
{
    StringBuilder sb = new StringBuilder();

    String lineEnd = "\r\n";
    String twoHyphens = "--";
    String boundary =  "*****";

    try
    {                       
        sb.append(twoHyphens + boundary + lineEnd);
        sb.append("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"fileName.jpg\"" + lineEnd);
        sb.append(lineEnd);

        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
        BufferedReader br = new BufferedReader(inputStreamReader);
        String line;
        while ((line = br.readLine()) != null) {
            sb.append(line);
        }                           

        sb.append(lineEnd);
        sb.append(twoHyphens + boundary + twoHyphens + lineEnd);

        fileInputStream.close();            

    }
    catch (Exception ex)
    {
        ex.printStackTrace();
    }

    return sb.toString();
}

非常感谢。

它通过以下方式对图像进行编码:

Bitmap photo; //This is the bitmap of your photo
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
并将图像传递给捆绑包:

params.putByteArray("source",byteArray);
params.putByteArray("source",byteArray);