如何使用HubUpload Post api?

时间:2018-04-20 12:40:43

标签: restsharp microsoft-translator

我正在看微软翻译中心(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。

1 个答案:

答案 0 :(得分:0)

管理解决它。使用HttpClient和MultipartFormDataContent来处理文件上传。需要了解有关RestSharp库和Web Api的更多信息。基于上传的excel文件的提取语言,microsoft翻译器中心将文档放在其各自的项目中。因此无需将其放在自己的项目中(指定参数)。上传文件后将获取跟踪ID,可以在Get方法中使用。