使用Ruby向Microsoft Azure Computer vision API传递base64而不是url的正确语法是什么

使用Ruby向Microsoft Azure Computer vision API传递base64而不是url的正确语法是什么,ruby,azure,azure-hub,Ruby,Azure,Azure Hub,我得到这个作为回应 {“代码”:“无效图像格式”,“请求ID”:“3aee7147-2acc-4f64-b1c6-8453815eda38”,“消息”:“输入数据不是有效图像。”} 救命 听起来您想通过Ruby中的应用程序/octet-stream内容类型将图像文件传递给Azure Computer Vision API,因此您需要将二进制图像数据传递给response.body,而不是传递图像的base64字符串 请使用下面的代码,而不是当前的代码,以使其正常工作 require 'net/h

我得到这个作为回应

{“代码”:“无效图像格式”,“请求ID”:“3aee7147-2acc-4f64-b1c6-8453815eda38”,“消息”:“输入数据不是有效图像。”}


救命

听起来您想通过Ruby中的
应用程序/octet-stream
内容类型将图像文件传递给Azure Computer Vision API,因此您需要将二进制图像数据传递给
response.body
,而不是传递图像的base64字符串

请使用下面的代码,而不是当前的代码,以使其正常工作

require 'net/http'

uri = URI('https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/ocr')
uri.query = URI.encode_www_form({

    'language' => 'unk',
    'detectOrientation ' => 'true'
})

request = Net::HTTP::Post.new(uri.request_uri)

request['Content-Type'] = 'application/octet-stream'

request['Ocp-Apim-Subscription-Key'] = 'MY_SUBSCRIPTION_KEY'

request.body = "raw_image_binary"


response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    http.request(request)
end

puts response.body
支持的图像格式:JPEG、PNG、GIF、BMP。 request.body=File.binread(“”) #或者'request.body=File.open(“”{| io | io.read}`也可以使用
# Supported image formats: JPEG, PNG, GIF, BMP.
request.body = File.binread("<your image file name>") 
# Or `request.body = File.open("<your image file name>") {|io| io.read}` also works