如何在Microsoft Graph API发送邮件后获取HTTP响应?
获取Microsoft Graph API发送邮件的HTTP响应状态码
要拿到发送邮件后的HTTP响应(比如202 Accepted、400 Bad Request这类),可以通过两种方式实现:
1. 使用返回HttpResponseMessage的重载方法
Graph SDK的PostAsync提供了带返回值的重载版本,能直接获取完整的HTTP响应对象,从中提取状态码:
Dim graphClient = New GraphServiceClient(clientSecretCredential, scopes) Dim requestBody = New Microsoft.Graph.Users.Item.SendMail.SendMailPostRequestBody With { .Message = New Message With { ... }, } ' 调用带返回值的PostAsync重载 Dim response = Await graphClient.Users("<OUTGOING_EMAIL_ADDRESS>").SendMail.PostAsync(requestBody, Nothing, Nothing, CancellationToken.None) ' 提取状态码 Dim statusCode = response.StatusCode ' 示例:判断请求是否已被接受 If statusCode = System.Net.HttpStatusCode.Accepted Then ' 处理发送成功逻辑 Else ' 根据不同状态码处理对应场景 End If
2. 捕获异常处理错误状态
当请求失败时(比如参数错误返回400、权限不足返回403),Graph SDK会抛出ServiceException,捕获这个异常就能拿到错误状态码和详细信息:
Try Dim graphClient = New GraphServiceClient(clientSecretCredential, scopes) Dim requestBody = New Microsoft.Graph.Users.Item.SendMail.SendMailPostRequestBody With { .Message = New Message With { ... }, } Await graphClient.Users("<OUTGOING_EMAIL_ADDRESS>").SendMail.PostAsync(requestBody) Catch ex As Microsoft.Graph.ServiceException ' 获取错误状态码 Dim errorStatusCode = ex.StatusCode ' 获取具体错误描述 Dim errorMsg = ex.Message ' 示例:处理400请求错误 If errorStatusCode = System.Net.HttpStatusCode.BadRequest Then ' 针对参数错误做对应处理 End If End Try
补充说明:正常发送邮件成功时,Graph API通常返回202 Accepted,表示请求已被接收并将后台处理发送。失败场景下,ServiceException还包含错误代码、响应内容等信息,方便排查问题。
内容的提问来源于stack exchange,提问作者sparks
相关产品推荐
相关产品推荐

