POST JOB(翻訳用OSSにファイルを登録するための新しい名前)の作成に困っています。セグメントのアップロードを使用して ZIP ファイルをバケットに既にアップロードしています (2 つの revit ファイルを含み、最初はルート、2 番目は revitlink)、その URN を持っているので、SVF への変換をトリガーしたいと考えています。この目的のために、私はこのコードを使用しています (Resharp、Newtonsoft.Json を使用):
public void CreatePostJOB(string serviceUrl, string urn, string rootFile, string token)
{
try
{
RestClient client = new RestClient(serviceUrl);
RestRequest request = new RestRequest();
request.Method = Method.POST;
request.Resource = "modelderivative/v2/designdata/job";
request.RequestFormat = DataFormat.Json;
request.AddParameter("Authorization", "Bearer " + token, ParameterType.HttpHeader);
request.AddParameter("x-ads-force", true);
request.AddParameter("Content-Type", "application/json");
JObject jsonbody = new JObject
(
new JProperty("input", new JObject
(
new JProperty("urn", urn),
new JProperty("compressedUrn", true),
new JProperty("rootFileName", rootFile)
)),
new JProperty("output", new JObject
(
new JProperty("formats", new JArray
(
new JObject
(
new JProperty("type", "svf"),
new JProperty("views", new JArray("3d", "2d"))
)
))
))
);
string post = jsonbody.ToString(Formatting.Indented);
request.AddParameter("application/json", post, ParameterType.RequestBody);
IRestResponse resp = client.Execute(request);
if (resp.StatusCode == HttpStatusCode.OK)
{
//TODO
}
}
catch (Exception ex)
{
//TODO
}
}
上記のコードは、次の JSON を post 変数に生成します。
{
"input": {
"urn": "/*urn base64 string with no padding*/",
"compressedUrn": true,
"rootFileName": "MainModel_A.rvt"
},
"output": {
"formats": [
{
"type": "svf",
"views": [
"3d",
"2d"
]
}
]
}
このコードをどのように変更しても、結果は常に同じです。
{"diagnostic":"Request body is not a valid json"}
また、同じ結果で通常の C# WebRequest を使用しようとしました。同じ API からの他の呼び出しが restsharp で魅力的に機能するため、バグがある可能性があります。C# で有効な投稿ジョブを作成するにはどうすればよいですか?