有人可以让我知道如何从 Java 中的 HTTP 触发器 Azure 函数发送 pdf 响应吗?
触发该函数后,我需要从 Azure 存储中读取 pdf 并将该 pdf 作为响应返回给浏览器。
最佳答案
这对我来说效果很好:
package com.function;
import java.net.URISyntaxException;
import java.security.InvalidKeyException;
import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.storage.*;
import com.microsoft.azure.storage.blob.*;
public class HttpTriggerJava {
@FunctionName("HttpTriggerJava")
public HttpResponseMessage run(@HttpTrigger(name = "req", methods = { HttpMethod.GET,
HttpMethod.POST }, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
final ExecutionContext context) {
context.getLogger().info("Java HTTP trigger processed a request.");
try {
CloudStorageAccount storageAccount = CloudStorageAccount.parse(
"{your storage connections tring}");
CloudBlobClient blobClient = storageAccount.createCloudBlobClient();
CloudBlobContainer container = blobClient.getContainerReference("{container name}");
CloudBlockBlob blob = container.getBlockBlobReference("{filename}");
byte[] content = new byte[blob.getStreamWriteSizeInBytes()];
blob.downloadToByteArray(content, 0);
return request.createResponseBuilder(HttpStatus.OK)
.body(content)
.build();
} catch (InvalidKeyException | URISyntaxException e) {
e.printStackTrace();
return request.createResponseBuilder(HttpStatus.NOT_FOUND)
.body(e.getMessage())
.build();
} catch (StorageException e) {
e.printStackTrace();
return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)
.body(e.getMessage())
.build();
}
}
}
关于java - 如何从 Azure Function java 发送 pdf 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53603812/