这是HttpTrigger函数。我想在本地主机中传递二进制映像的位置(http://localhost:7071/api/HttpTrigger1)作为以下参数的附件实例http://localhost:7071/api/HttpTrigger1//9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAYGBgYHBgcICAc.......
我的代码
import base64
import numpy as np
import cv2 as cv
def main(req: func.HttpRequest) -> func.HttpResponse:
base_64_image_bytes = req.get_body()
image_bytes = base64.b64decode(base_64_image_bytes)
img_nparr = np.frombuffer(image_bytes, dtype=np.uint8)
image = cv.imdecode(img_nparr, cv.IMREAD_COLOR)
cv.imwrite(TEMP_IMAGE_FILENAME, image)
return func.HttpResponse("Done", status_code=200)
但是base_64_image_bytes是空的。请帮帮我。。。。
对于这个问题,您不能将二进制文件放在请求url路径中。如果你想把二进制文件作为参数放在请求url中,你需要使用类似于:http://localhost:7071/api/HttpTrigger1?binary=xxxxx
的url。然后,您可以在函数中获得参数binary
,代码为:
def main(req: func.HttpRequest) -> func.HttpResponse:
binary = req.params.get('binary')
如果你使用你在问题中提到的url:http://localhost:7071/api/HttpTrigger1//9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAYGBgYHBgcICAc.......
,它不会触发你的函数,因为你的函数请求url是http://localhost:7071/api/HttpTrigger1
,而不是http://localhost:7071/api/HttpTrigger1//9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAYGBgYHBgcICAc.......
。
您还可以将二进制文件放入请求的请求体中。如果是,则需要使用";张贴";方法来请求您的函数,而不是";获取"方法例如,您用";张贴";方法和请求体类似:
{
"binary":"xxxxxx"
}
然后你可以在你的函数中获得二进制,代码如下:
req_body = req.get_json()
binary = req_body.get('binary')