从 sketchup 向第三方 api 发送 json post 请求
Sending json post request in thirdparty api from sketchup
我正在尝试从 sketchup 发送一个 post 请求到 api 我 made.I 有网络 dialog.On 网络对话框,点击“保存”按钮post 请求将是 executed.I 想要发送信息,因为 json.I 已经能够访问 api 我 made.How 我可以访问长度、宽度和从 sketchup 模型发送长度、宽度、体积,因为 json.here 是我写的模型::
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
我想发送这样的 post 请求:
{
"length": "11",
"width": "12",
"volume": "168"
}
你有两种方法:
JAVASCRIPT 内页
-> 在 javascript 中直接在您的网络对话框中发送请求,就像在正常的 html 页面中一样。例如,如果您使用 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>
IN RUBY
通过删除 Sketchup ruby 代码,在 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)
}
希望对您有所帮助
我正在尝试从 sketchup 发送一个 post 请求到 api 我 made.I 有网络 dialog.On 网络对话框,点击“保存”按钮post 请求将是 executed.I 想要发送信息,因为 json.I 已经能够访问 api 我 made.How 我可以访问长度、宽度和从 sketchup 模型发送长度、宽度、体积,因为 json.here 是我写的模型::
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
我想发送这样的 post 请求:
{
"length": "11",
"width": "12",
"volume": "168"
}
你有两种方法:
JAVASCRIPT 内页
-> 在 javascript 中直接在您的网络对话框中发送请求,就像在正常的 html 页面中一样。例如,如果您使用 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>
IN RUBY 通过删除 Sketchup ruby 代码,在 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)
}
希望对您有所帮助