Connector实战案例:轻松实现JSON数据交互与文件上传
【免费下载链接】ConnectorКоннектор: удобный HTTP-клиент для 1С:Предприятие 8项目地址: https://gitcode.com/gh_mirrors/conne/Connector
Connector作为1С:Предприятие 8的便捷HTTP客户端,提供了强大的JSON数据处理和文件上传功能。本文将通过实战案例,展示如何利用Connector快速实现与外部系统的JSON数据交互及文件上传操作,帮助开发者高效集成第三方服务。
📌 核心功能概览
Connector模块位于项目的src/en/CommonModules/HTTPConnector/目录下,主要提供两类核心能力:
- JSON数据交互:支持GET/POST/PUT/DELETE等HTTP方法的JSON请求与响应处理
- 文件上传功能:通过multipart/form-data格式实现文件传输
JSON数据交互基础
Connector提供了简化的JSON请求方法,如GETAsJson、POSTAsJson等,这些方法封装在src/en/CommonModules/HTTPConnector/Ext/Module.bsl文件中。以下是典型的JSON请求流程:
- 设置请求参数(URL、请求头、JSON数据等)
- 调用相应的JSON请求方法
- 自动处理JSON序列化与反序列化
- 获取结构化的响应数据
文件上传机制
文件上传功能通过multipart/form-data格式实现,相关代码位于src/en/CommonModules/HTTPConnector/Ext/Module.bsl的1405行和1456行:
Field.Headers.Insert("Content-Disposition", "form-data"); Return StrTemplate("multipart/form-data; boundary=%1", Delimiter);🔍 JSON数据交互实战
发送GET请求获取JSON数据
使用GETAsJson方法可以轻松获取并解析JSON数据:
// 定义请求参数 AdditionalParameters = New Structure; AdditionalParameters.Insert("Headers", New Structure); AdditionalParameters.Headers.Insert("Accept", "application/json"); // 发送GET请求并获取JSON响应 Response = HTTPConnector.GETAsJson("https://api.example.com/data", AdditionalParameters); // 处理响应数据 If Response.Success Then Data = Response.Data; // 已反序列化为Map或Structure // 业务逻辑处理 EndIf;发送POST请求提交JSON数据
使用POSTAsJson方法提交JSON数据:
// 准备要发送的JSON数据 RequestData = New Structure; RequestData.Insert("name", "测试数据"); RequestData.Insert("value", 123); // 设置请求参数 AdditionalParameters = New Structure; AdditionalParameters.Insert("Json", RequestData); AdditionalParameters.Insert("JSONConversionParameters", New Structure); AdditionalParameters.JSONConversionParameters.Insert("ReadToMap", True); // 发送POST请求 Response = HTTPConnector.POSTAsJson("https://api.example.com/submit", AdditionalParameters);JSON转换参数(JSONConversionParameters)支持多种配置,如日期格式、属性名称映射等,详细定义可参考src/en/CommonModules/HTTPConnector/Ext/Module.bsl的278-281行。
📤 文件上传实战
单文件上传实现
以下是使用Connector上传单个文件的示例:
// 创建文件上传会话 Session = HTTPConnector.CreateSession(); // 设置请求参数 AdditionalParameters = New Structure; AdditionalParameters.Insert("Method", "POST"); AdditionalParameters.Insert("URL", "https://api.example.com/upload"); // 创建表单数据 FormData = HTTPConnector.CreateFormData(); FormData.AddFile("file", "C:\\Files\\document.pdf", "application/pdf"); // 执行上传 Response = Session.Send(AdditionalParameters, FormData); // 处理响应 If Response.StatusCode = 200 Then // 上传成功处理 EndIf;多文件与表单数据混合上传
Connector支持同时上传多个文件和附加表单字段:
FormData = HTTPConnector.CreateFormData(); // 添加文本字段 FormData.AddField("description", "项目文档"); FormData.AddField("category", "reports"); // 添加多个文件 FormData.AddFile("file1", "C:\\Files\\file1.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); FormData.AddFile("file2", "C:\\Files\\image.png", "image/png"); // 执行上传 Response = Session.Send(AdditionalParameters, FormData);⚙️ 高级配置选项
JSON转换参数配置
通过JSONConversionParameters可以精细控制JSON的序列化与反序列化行为:
JSONConversionParameters = New Structure; JSONConversionParameters.Insert("ReadToMap", True); // 响应解析为Map而非Structure JSONConversionParameters.Insert("JSONDateFormat", JSONDateFormat.ISO8601); // 日期格式 JSONConversionParameters.Insert("PropertiesNamesWithDateValues", New Array("createdAt", "updatedAt")); // 日期字段HTTP会话管理
对于需要保持会话状态的场景,可以使用会话管理功能:
Session = HTTPConnector.CreateSession(); Session.SetHeader("Authorization", "Bearer " + AccessToken); // 连续请求将自动保持会话 Response1 = Session.GETAsJson("https://api.example.com/data1"); Response2 = Session.POSTAsJson("https://api.example.com/data2", AdditionalParameters);📋 常见问题解决
JSON解析错误
如果遇到JSON解析问题,可检查:
- 确保响应内容确实是有效的JSON格式
- 调整JSONConversionParameters中的ReadToMap参数
- 检查日期格式是否匹配
文件上传失败
文件上传失败时建议:
- 检查文件路径和权限
- 验证目标服务器的文件大小限制
- 通过
Response.Headers和Response.StatusCode分析错误原因
🚀 快速开始指南
- 克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/conne/Connector- 参考
src/en/CommonModules/HTTPConnector/Ext/Module.bsl中的示例代码 - 根据实际需求调整JSON转换参数和请求配置
- 利用提供的简化方法快速实现HTTP交互功能
Connector为1С:Предприятие 8开发者提供了高效、可靠的HTTP客户端解决方案,无论是简单的JSON数据交互还是复杂的文件上传场景,都能轻松应对。通过本文介绍的实战案例,相信您已经掌握了Connector的核心使用方法,开始在项目中体验它的强大功能吧!
【免费下载链接】ConnectorКоннектор: удобный HTTP-клиент для 1С:Предприятие 8项目地址: https://gitcode.com/gh_mirrors/conne/Connector
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考