使用ASP.Net .ashx辅助文件调用MASV API无法获取响应求助
MASV API对接报错排查:"An error occurred while sending the request."
我正在用ASP.NET异步HTTP处理程序对接MASV API,代码如下(已隐藏Teams ID和API Key,PackageRequest与UploadPackage是自定义类),但收到错误提示“An error occurred while sending the request.”,已经添加了async/await关键字,不知道问题出在哪。
Imports Newtonsoft.Json Imports RestSharp Public Class NewToken Implements IHttpAsyncHandler, IRequiresSessionState Private _Delegate As AsyncProcessorDelegate Protected Delegate Sub AsyncProcessorDelegate(context As HttpContext) Public Function BeginProcessRequest(context As HttpContext, cb As AsyncCallback, extraData As Object) As IAsyncResult Implements IHttpAsyncHandler.BeginProcessRequest _Delegate = New AsyncProcessorDelegate(AddressOf ProcessRequest) Return _Delegate.BeginInvoke(context, cb, extraData) End Function Async Sub ProcessRequest(context As HttpContext) Implements IHttpAsyncHandler.ProcessRequest Try Dim converted As String = Await new_token() context.Response.Write(converted) Catch ex As Exception Dim whatIsIt As String = ex.Message End Try End Sub Public Sub EndProcessRequest(result As IAsyncResult) Implements IHttpAsyncHandler.EndProcessRequest _Delegate.EndInvoke(result) End Sub Public Async Function new_token() As Threading.Tasks.Task(Of String) Try Dim client As New RestClient("https://api.massive.app/v1") Dim request As New RestRequest("teams/ID/packages", Method.Post) request.AddHeader("X-Api-Key", "API KEY") Dim pkgRequest As New PackageRequest With { .description = "MASV", .name = "File Upload", .recipient = "test@test.com" } request.AddJsonBody(pkgRequest) Dim result As RestResponse(Of UploadPackage) = Await client.ExecuteAsync(Of UploadPackage)(request) Dim converted As String = JsonConvert.SerializeObject(result.Data) Return converted Catch ex As Exception Dim whatIsIt As String = ex.Message Return Nothing End Try End Function ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable Get Return False End Get End Property End Class
排查方向:
- 先修复API端点:你当前用的
https://api.massive.app/v1是错误的,MASV官方API端点是https://api.masv.io/v1,这大概率是报错的核心原因。 - 捕获完整异常:当前代码只拿了
ex.Message,很多底层错误(比如证书验证失败、网络超时、序列化错误)藏在InnerException里,修改Catch块打印完整异常信息:Catch ex As Exception Dim fullError = ex.ToString() context.Response.Write(fullError) Return Nothing End Try - 检查自定义类序列化:确保
PackageRequest的属性字段和MASV API要求完全匹配,比如是否需要驼峰命名,可通过JsonProperty特性指定:Public Class PackageRequest <JsonProperty("name")> Public Property Name As String <JsonProperty("description")> Public Property Description As String <JsonProperty("recipient")> Public Property Recipient As String End Class - 验证权限与参数:确认API Key有效且拥有创建Package的权限,同时把
teams/ID/packages中的ID替换为真实的团队ID。 - 检查网络环境:服务器是否能访问MASV API,有没有防火墙、代理拦截了请求。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

