servicestack - JSV 表单中的 HttpPost 数据
问题描述
我需要与服务堆栈 Web 服务通信。它似乎接受带有 jsv 值的表单内容。
有没有办法以这种方式自动序列化对象?像“JsvFormContent”之类的东西?
非常感谢!我对服务堆栈完全陌生。
解决方案
ServiceStack 接受多种不同格式的内容,JSV 只是其中之一,尽管它是 ServiceStack 用来序列化复杂类型 QueryString 或 FormData 参数的内容,但是如果您只是发送 HTML 表单值,它们不是复杂值,所以您可以使用标准的 HTML 内容类型发送它们,例如(queryString、application/x-www-form-urlencoded 或 multipart/form-data)。如果您需要从任何受支持的流行语言调用 ServiceStack API,您可以只使用它们的通用 JSON 服务客户端和生成的 DTO。
您永远不需要,但如果您想从 C#/.NET 发送 JSV,您可以使用JsvServiceClient。
唯一需要发送 JSV 的情况是,如果您需要从浏览器发送复杂的 JS 对象,在这种情况下,您可以使用@servicestack/client中的 JSV impl 将 JS 对象序列化为 JSV,例如:
let jsv = JSV.stringify(obj);
如果您正在使用任何@servicestack/client
已导入的 SPA 项目模板。
否则@servicestack/client
嵌入在 ServiceStack.dll中,您可以通过以下方式访问:
<script src="/js/servicestack-client.js"></script>
对于较旧的或非 ServiceStack 应用程序,您可以从unpkg CDN解决它:
<script src="https://unpkg.com/@servicestack/client/dist/servicestack-client.min.js"></script>
您可以使用以下命令将其导入全局命名空间:
<script>
var exports = { __esModule:true }, module = { exports:exports }
function require(name) { return exports[name] || window[name] }
</script>
<script src="/js/servicestack-client.js"></script>
<script>
Object.assign(window, exports); //import
let jsv = JSV.stringify(obj);
</script>
推荐阅读
- actions-on-google - 获取设备位置 - Google Assistant
- swiftui - Swiftui:带有多个图像的粘性、弹性标题?
- python - 神经网络和 plot_decision_regions?
- azure-devops - Azure Pipeline Archive 没有这样的文件或目录失败
- javascript - 无法使用 Webpack 注册自定义 Firebase FCM Service Worker
- java - 内存不足:元空间
- javascript - 嵌套 AJAX 跳过父函数,不会停止服务器响应
- angular - 在 Nginx 中从 Angular 调用 API 无法解析 Docker 服务名称
- postgresql - 如何正确重置我的 PostgreSQL 密码?
- c - 以下实用程序的宏与函数的用法