当前位置: 首页 > 知识库问答 >
问题:

Azure通过REST编码作业失败

颜志业
2023-03-14

我正试图上传一个视频,并通过azure rest服务对其进行编码。我现在已经达到了编码视频的步骤,但我有困难的要求。

 var joburl = res.RequestMessage.RequestUri + "Jobs";
        client = new HttpClient();
        client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + token);
        client.DefaultRequestHeaders.Add("x-ms-version", "2.8");
        client.DefaultRequestHeaders.Add("DataServiceVersion", "3.0");
        client.DefaultRequestHeaders.Add("MaxDataServiceVersion", "3.0");
        client.DefaultRequestHeaders.Add("x-ms-date", date);

        //accept
        t = new NameValueHeaderValue("odata", "verbose");
        type = new MediaTypeWithQualityHeaderValue("application/json");
        type.Parameters.Add(t);
        client.DefaultRequestHeaders.Accept.Add(type);

        result = await client.PostAsync(joburl,json);
{"Name":"khgfiuydencodingjob","InputMediaAssets":[{"__metadata":{"Uri":"https://wamsamsclus001rest-hs.cloudapp.net/api/Assets('nb%3acid%3aUUID%3ad037b321-cd1c-43a9-9607-c4910fa7a85b')"}}],"Tasks":[{"Configuration":"H264 Adaptive Bitrate MP4 Set 720p","MediaProcessorId":"nb:mpid:UUID:1b1da727-93ae-4e46-a8a1-268828765609","TaskBody":"<?xml version=\"1.0\"encoding=\"utf-8\"?><taskBody><inputAsset>JobInputAsset(0)</inputAsset><outputAsset>JobOutputAsset(0)</outputAsset></taskBody>"}]}
{"error":{"code":"","message":{"lang":"en-US","value":"Parsing request content failed due to: Make sure to only use property names that are defined by the type"}}}

有人能发现错误吗。

谢谢你的帮助

共有1个答案

潘翰藻
2023-03-14

好吧,我让它起作用了。在我的JSON/String内容中需要一个Odata=verbose,如下所示:

var jobInJson = JsonConvert.SerializeObject(job);
       json = new StringContent(jobInJson, Encoding.UTF8);//, 
       json.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json;odata=verbose");

我以前试过这个,但是我得到了一个错误500,但现在它是工作的。

 类似资料:
  • 我正在通过rest上传视频到我们的Azure媒体服务器,但编码工作失败,以下例外: 我可以看到它声明不支持文件类型,但是如果我手动上传它就没有问题了。 这就是我发布视频的方式 该文件存在于Azure服务器上,但无法播放。 谁能给我指个方向吗

  • 我正在尝试运行一个python3脚本,每天在特定的时间检查电子邮件的特定条件。 我可以看到crontab调用了这些命令,但脚本没有给出我需要的结果,即似乎没有运行。我可以在syslog中看到cron的执行: 8月3日16:25:01 raspberrypi/USR/SBIN/CRON[4597]:(pi)CMD(cd/home/pi/pythonscripts) 8月3日16:25:01 rasp

  • 问题内容: 目前我有这个: 我可以更改它以使用对属性的引用 但是,我需要使用通过编程获得的值,以便可以在不重新部署应用程序的情况下更改计划。什么是最好的方法?我意识到可能无法使用注释… 问题答案: 使用a 可以动态计算下一次执行时间。 这样的事情应该可以解决问题(从Javadoc@EnableScheduling改编为):

  • 问题内容: 我正在尝试编写一个Jenkins作业(例如CopyJob),该作业将复制另一个作业(在此作业中使用Multijob插件),并且还将其所有下游作业复制到新作业中。想法是要有一个Multijob作为模板,以便可以将其复制到新的Multijobs中(例如,用于特定的分支或功能)。 看到: 当手动触发“ CopyJob”时,它将使用新的SubJobs创建一个新的MultiJob: 到目前为止,

  • 问题内容: 目前我有这个: 我可以更改它以使用对属性的引用 但是,我需要使用通过编程获得的值,以便可以在不重新部署应用程序的情况下更改计划。什么是最好的方法?我意识到可能无法使用注释… 问题答案: 使用可以动态计算下一次执行时间。 这样的事情应该可以解决问题(从改编为):

  • 我们希望能够使其可配置--即如果通过率低于98%,测试工作失败。 这是我可以通过某个插件在Jenkins作业中控制或配置的东西,还是我必须在TestNG侦听器中编码的东西,即并根据计算的通过率设置返回值?