这是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是空的。请帮帮我..。
发布于 2021-04-09 01:47:26
对于这个问题,您不能将二进制文件放在请求url路径中。如果要将二进制文件作为参数放入请求url中,则需要使用url (例如:http://localhost:7071/api/HttpTrigger1?binary=xxxxx )。然后,您可以使用以下代码在函数中获得参数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.......。
您也可以将二进制文件放入请求的请求体中。如果是这样,您需要使用"Post“方法来请求您的函数,而不是使用"Get”方法。例如,您使用"Post“方法和请求体请求函数,如:
{
"binary":"xxxxxx"
}然后,您可以使用如下代码获取函数中的二进制文件:
req_body = req.get_json()
binary = req_body.get('binary')https://stackoverflow.com/questions/67008152
复制相似问题