You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

APS API WorkItem大JSON payload发送及C#端获取示例咨询

在APS API的WorkItem中发送大JSON Payload及C#端获取示例

一、发送大JSON Payload到WorkItem

当JSON payload体积较大时,若直接放入请求体易触发大小限制或超时,推荐使用APS API的X-ADS-Payload-Url请求头指定可被APS服务访问的JSON文件外部URL;若需直接发送,需确保请求头Content-Type设为application/json,且payload符合WorkItem结构要求。

直接发送大JSON的HTTP请求示例

POST /v3/workitems HTTP/1.1
Host: developer.api.autodesk.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
Content-Length: [YOUR_JSON_SIZE]

{
  "title": "大JSON处理任务",
  "payload": {
    "largeDataset": [
      // 批量数据条目
    ],
    "taskConfig": {
      "param1": "value1",
      "param2": "value2"
    }
  },
  "status": "active",
  "workflowId": "YOUR_WORKFLOW_ID"
}

C#发送大JSON的代码示例

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public async Task CreateLargePayloadWorkItem()
{
    var accessToken = "YOUR_ACCESS_TOKEN";
    var workflowId = "YOUR_WORKFLOW_ID";
    
    // 模拟大JSON payload,实际场景可从本地文件/存储读取
    var largePayload = new 
    {
        title = "大JSON处理任务",
        payload = new 
        {
            largeDataset = new object[10000],
            taskConfig = new { param1 = "value1", param2 = "value2" }
        },
        status = "active",
        workflowId = workflowId
    };
    
    using var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Authorization = 
        new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
    
    var jsonContent = new StringContent(
        JsonConvert.SerializeObject(largePayload),
        Encoding.UTF8,
        "application/json");
    
    var response = await httpClient.PostAsync(
        "https://developer.api.autodesk.com/v3/workitems", 
        jsonContent);
    
    response.EnsureSuccessStatusCode();
    var result = await response.Content.ReadAsStringAsync();
    Console.WriteLine("WorkItem创建成功: " + result);
}

二、C#端获取WorkItem中的JSON数据

调用APS API的WorkItem详情接口获取任务信息,解析payload字段即可提取目标JSON数据。

C#获取并解析的代码示例

using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;

public async Task RetrieveWorkItemPayload(string workItemId)
{
    var accessToken = "YOUR_ACCESS_TOKEN";
    
    using var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Authorization = 
        new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
    
    var response = await httpClient.GetAsync(
        $"https://developer.api.autodesk.com/v3/workitems/{workItemId}");
    
    response.EnsureSuccessStatusCode();
    var workItemJson = await response.Content.ReadAsStringAsync();
    
    // 解析JSON提取payload
    var workItemObj = JObject.Parse(workItemJson);
    var payload = workItemObj["payload"];
    
    // 直接输出或转为强类型对象处理
    Console.WriteLine("提取的Payload内容: " + payload.ToString());
    
    // 转为强类型示例(需根据你的JSON结构定义模型)
    // var payloadModel = payload.ToObject<CustomPayloadModel>();
}

// 自定义Payload模型示例
public class CustomPayloadModel
{
    public object[] LargeDataset { get; set; }
    public TaskConfig TaskConfig { get; set; }
}

public class TaskConfig
{
    public string Param1 { get; set; }
    public string Param2 { get; set; }
}

注意事项

  • 确保APS访问令牌拥有data:write和data:read权限
  • 当JSON payload超过10MB时,优先使用X-ADS-Payload-Url方式规避请求大小限制
  • 处理超大JSON时建议使用流式读写,避免内存占用过高

内容的提问来源于stack exchange,提问作者Joseph Tenenbaum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:17:48