我正在看微软翻译中心(Microsoft Translator Hub Api Swagger Link)打开的api,我无法弄清楚如何使用上传文件部分。我设法做的其他操作,但我无法弄清楚如何使用HubUpload操作。
对于HubUpload / Get
public void GetStatusHubUpload(string accessToken)
{
var client = new RestClient("https://hub.microsofttranslator.com/api/HubUpload/Get");
var request = new RestRequest(Method.GET);
request.AddParameter("trackingId", /*Integer*/);// Not sure where to get tracking id - after upload?
request.AddHeader("Authorization", accessToken);
request.AddHeader("WorkspaceIdentifierHeader", workspaceid);
IRestResponse response = client.Execute(request);
HubApiUploadResult hubApiUploadResult = JsonConvert.DeserializeObject<HubApiUploadResult>(response.Content);
}
对于HubUpload / Post - 如何包含要上传到字典的excel文件?什么是参数名称?我们不需要指定项目名称吗?如何在不提供此参数的情况下知道上传位置(在swagger页面中,指定的唯一参数是overwrite,Authorization和WorkspaceIdentifierHeader)?
我已尝试过这个,但收到内部服务器错误
public void PostFile(string accessToken)
{
var client = new RestClient("https://hub.microsofttranslator.com/api/HubUpload/Post");
var request = new RestRequest(Method.POST);
request.AddParameter("projectname", "DemoTranslatorHub_En_Ar");
request.AddParameter("overwrite", "false");
request.AddHeader("Authorization", accessToken);
request.AddHeader("WorkspaceIdentifierHeader", workspaceId);
request.AddFile("content", @"excel file path");
IRestResponse response = client.Execute(request);
HubApiUploadResult hubApiUploadResult = JsonConvert.DeserializeObject<HubApiUploadResult>(response.Content);
}
先进的Tqvm。
答案 0 :(得分:0)
管理解决它。使用HttpClient和MultipartFormDataContent来处理文件上传。需要了解有关RestSharp库和Web Api的更多信息。基于上传的excel文件的提取语言,microsoft翻译器中心将文档放在其各自的项目中。因此无需将其放在自己的项目中(指定参数)。上传文件后将获取跟踪ID,可以在Get方法中使用。