1. 参数是个复杂的类,N多属性,多个属性的属性
2. 调用方:var resp = client.PostAsJsonAsync("api/UnOpenMyCode/do", model).Result; (异步)
3. 接口:
/// <summary>
/// Do
/// </summary>
[HttpPost]
public async Task<HttpResponseMessage> Do(MyRequest rq)
4. MyRequest 参数类:
using System.Collections.Generic;
namespace UnOpenMyCode
{
public class MyRequest
{
/// <summary>
/// 要填充到模板中的表单数据
/// </summary>
public List<PdfRequestFormData> FormDatas { get; set; }
/// <summary>
/// 要添加到PDF模板中的图片信息
/// </summary>
public List<PdfRequestFile> Images { get; set; }
/// <summary>
/// 要添加到PDF模板中的其他文件信息(如证书)
/// </summary>
public List<PdfRequestFile> Files { get; set; }
/// <summary>
/// 水印信息
/// </summary>
public List<PdfRequestWaterMark> WaterMark { get; set; }
/// <summary>
/// 证书签字信息
/// </summary>
public List<PdfRequestSignInfo> SignInfos { get; set; }
/// <summary>
/// 盖章签字信息
/// </summary>
public List<PdfRequestSealInfo> SealInfos { get; set; }
/// <summary>
/// 标记属于哪一个签字过程
/// </summary>
public string BatchNo { get; set; }
/// <summary>
/// 合同号
/// </summary>
public string CreditNo { get; set; }
/// <summary>
/// 业务系统的名称
/// </summary>
public string SystemName { get; set; }
/// <summary>
/// 指定签字的起始步骤
/// </summary>
public PdfHandlerStep Step { get; set; }
}
}
追踪方法1:
1.1 反复比对调用方的Model和接收方的Model 的属性 ,尽量同步保持一模一样 : 依然进不去Action
追踪方法2:
2.1 将调用方的Model参数ToJson记录到日志 :发现了问题,居然日志有30多M
2.2 再更换参数合同ID(能跳进Action):发现日志只有1.9兆
结论: Images 存储了大图片, ASP.NET默认只允许4兆. 在接口方 Web.config 扩大文件大小:
<httpRuntime targetFramework="4.5" maxRequestLength="10240"/> --10兆