Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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 将位图上载到Ruby Rails服务器_Android_Ruby On Rails_Ruby_Json_Bitmap - Fatal编程技术网

Android 将位图上载到Ruby Rails服务器

Android 将位图上载到Ruby Rails服务器,android,ruby-on-rails,ruby,json,bitmap,Android,Ruby On Rails,Ruby,Json,Bitmap,我需要发送JSON,如下所示: story = { :story => { :uuid => "1234567890", :title => "Title", :subtitle => "Subtitle", :private => true, :bytes => [

我需要发送JSON,如下所示:

story = {
            :story => {
              :uuid => "1234567890",
              :title => "Title",
              :subtitle => "Subtitle",
              :private => true,
              :bytes => [
                {
                  :uuid => "1234567890",
                  :timelineDate => "1970-01-01T00:00:00.000+00:00",
                  :caption => "Byte 1"
                  :photo => image
                }
    }
无需发送图像即可正常工作,但在JSON服务器中使用图像作为位图返回错误

我以这种方式发送的请求:

  RestClient client = RestClient.getInstance(this, URL);
                        client.addHeader("Content-Type", "application/json");
                        client.addHeader("Authorization", "Token token=" token);    

//create JSON from Java objects
                        client.setJSONString(json);
                        client.execute(RestClient.RequestMethod.POST);
要将其发送到Rails服务器,必须是什么类型的映像

Rails服务器需要如下图像:

 #<Rack::Test::UploadedFile:0x00000103ea6330
     @content_type="image/jpg",
     @original_filename="photo.jpg",
     @tempfile=
      #<File:/var/folders/1j/8b1khcf57fv1stf87gcylk8c0000gn/T/photo.jpg20140512-3303-1u2nkqo>
试试这个方法

1) 像这样将位图转换为Base64字符串

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();  
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
要从字节数组编码base64,请使用以下方法

String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
2) 在JSON中设置photo的值

   json.put("photo",encoded);

如果您希望以JSON格式发送图像,则必须将图像转换为Base64字符串,然后如果我将图像作为Base64发送,则发送将起作用,而不是在Rails上出现错误:曲别针::AdapterRegistry::NoHandleError(未找到“lhlhlkhlkhpiopHjKguyUV…”的处理程序)LHLHLHLHLHLHHLKHPIOPHJKGUYUV-这是字符串编码Dihor Kostenko@有解决方案吗?