Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 从sketchup在第三方api中发送json post请求_Ruby_Post_Sketchup - Fatal编程技术网

Ruby 从sketchup在第三方api中发送json post请求

Ruby 从sketchup在第三方api中发送json post请求,ruby,post,sketchup,Ruby,Post,Sketchup,我正在尝试从sketchup向我制作的api发送post请求。我有web对话框。在web对话框上,单击“保存”按钮,post请求将被执行。我想将信息作为json发送。我已经能够访问我制作的api。我如何访问长度、宽度并发送长度、宽度,来自sketchup模型的json卷。以下是我编写的模型: def self.show_dialog @dialog ||= self.create_dialog @dialog.add_action_callback("ready&q

我正在尝试从sketchup向我制作的api发送post请求。我有web对话框。在web对话框上,单击“保存”按钮,post请求将被执行。我想将信息作为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
我想发送类似以下内容的post请求:

{
    "length": "11",
     "width": "12",
    "volume": "168"
}
您有两种方法:

页面内部的JAVASCRIPT

->在webdialog中直接发送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>
希望能有所帮助

  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)

  }