ruby - 从sketchup在第三方api中发送json post请求
问题描述
我正在尝试从sketchup向我制作的api发送一个发布请求。我有网络对话框。在网络对话框中,单击“保存”按钮将执行发布请求。我想将信息作为json发送。我已经能够访问我制作的 api。我如何访问长度、宽度并将长度、宽度、体积从 Sketchup 模型作为 json 发送。这是我写的模型::
def self.show_dialog
@dialog ||= self.create_dialog
@dialog.add_action_callback("ready") { |action_context|
self.update_dialog
nil
}
@dialog.add_action_callback("accept") { |action_context, value|
self.update_material(value)
@dialog.close
nil
}
@dialog.add_action_callback("cancel") { |action_context, value|
@dialog.close
nil
}
@dialog.add_action_callback("save") { |action_context, value|
self.update_material(value)
request = Sketchup::Http::Request.new("http://127.0.0.1:5000/api/v1/projectStatus/save", Sketchup::Http::POST )
request.start do |request, response|
puts "body: #{response.body}"
end
nil
}
@dialog.show
end
我想发送这样的帖子请求:
{
"length": "11",
"width": "12",
"volume": "168"
}
解决方案
你有两种方法:
页面内的 JAVASCRIPT
-> 像在普通 html 页面中一样,直接在 webdialog 中使用 javascript 发送请求。例如,如果您使用 Jquery:
<html>
<head>
<script src="jquery-3.5.1.min.js"></script>
</head>
.....
<body>
<button id="save">save</button>
</body>
<script>
$( "#save" ).click(function() {
$.ajax({
type: "POST",
url: "http://127.0.0.1:5000/api/v1/projectStatus/save",
data: {
"length": "11",
"width": "12",
"volume": "168"
},
success: success,
dataType: dataType
});
});
</script>
</html>
通过删除Sketchup ruby 代码,通过删除 Sketchup 并添加
Sketchup::require 'net/http'
....
@dialog.add_action_callback("save") { |action_context, value|
self.update_material(value)
uri = URI("http://127.0.0.1:5000/api/v1/projectStatus/sav")
result_json = Net::HTTP.post(uri,{
"length": "11",
"width": "12",
"volume": "168"
})
result = JSON.parse(result_json)
}
希望有帮助
推荐阅读
- sql-server - 在 SSIS 中将 VARCHAR(MAX) 字段从 SQL 导出到 Excel
- java - 在接口声明上使用@PreAuthorize
- mysql - 检索所有帖子计数与日期排序日期错误
- ios - 尝试将图像叠加到 CALayer 上并保留子视图 (UITextView) 的位置
- django - 视图集响应的 Django Rest Framework 序列化
- reactjs - 如何从反应制作的电子应用程序制作MSI文件
- pyinstaller - pyinstaller:找不到命令
- c++ - glDeleteTextures 给出错误 E0167(类型参数与类型参数不兼容)
- vb.net - SharePoint 链接应在文件资源管理器中打开,但在 Web 浏览器中打开
- mysql - 如何排列和分组 MySQL 结果