Ruby 为什么';我的http POST请求是否正常?
我想用ruby做这个。但是回来Ruby 为什么';我的http POST请求是否正常?,ruby,post,neo4j,Ruby,Post,Neo4j,我想用ruby做这个。但是回来 #我尝试的是: require 'rubygems' require 'net/http' require 'uri' require 'json' auto_index_nodes =URI('http://localhost:7474/db/data/index/node/') request_nodes = Net::HTTP::Post.new(auto_index_nodes.request_uri) http = Net::HTTP.new(aut
#
我尝试的是:
require 'rubygems'
require 'net/http'
require 'uri'
require 'json'
auto_index_nodes =URI('http://localhost:7474/db/data/index/node/')
request_nodes = Net::HTTP::Post.new(auto_index_nodes.request_uri)
http = Net::HTTP.new(auto_index_nodes.host, auto_index_nodes.port)
request_nodes.add_field("Accept", "application/json")
request_nodes.set_form_data({"name"=>"node_auto_index",
"config" => {
"type" => "fulltext",
"provider" =>"lucene"} ,
"Content-Type" => "application/json"
})
response = http.request(request_nodes)
试着写下这部分:
"config" => {
"type" => "fulltext",
provider" =>"lucene"} ,
"Content-Type" => "application/json"
}
就像这样:
"config" => '{
"type" => "fulltext",\
"provider" =>"lucene"},\
"Content-Type" => "application/json"\
}'
这一尝试也无济于事:
request_nodes.set_form_data({"name"=>"node_auto_index",
"config" => '{ \
"type" : "fulltext",\
"provider" : "lucene"}' ,
"Content-Type" => "application/json"
})
试试这个:
require 'rubygems'
require "net/http"
require "uri"
require "json"
uri = URI.parse("http://localhost:7474/db/data/index/node/")
req = Net::HTTP::Post.new(uri.request_uri)
req['Content-Type'] = 'application/json'
req['Accept'] = 'application/json'
req.body = {
"name" => "node_auto_index",
"config" => { "type" => "fulltext", "provider" => "lucene" },
}.to_json
res = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(req)
end
这是
内容类型
和接受
都是标题,因此您需要将它们作为标题发送,而不是在正文中发送。JSON内容应该放在请求正文中,但您需要将哈希转换为JSON,而不是以名称/值对的形式将其作为表单数据发送。尝试以下方法:
require 'rubygems'
require "net/http"
require "uri"
require "json"
uri = URI.parse("http://localhost:7474/db/data/index/node/")
req = Net::HTTP::Post.new(uri.request_uri)
req['Content-Type'] = 'application/json'
req['Accept'] = 'application/json'
req.body = {
"name" => "node_auto_index",
"config" => { "type" => "fulltext", "provider" => "lucene" },
}.to_json
res = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(req)
end
这是
内容类型
和接受
都是标题,因此您需要将它们作为标题发送,而不是在正文中发送。JSON内容应该放在请求正文中,但您需要将哈希转换为JSON,而不是以名称/值对的形式将其作为表单数据发送。我猜这与您的服务器的响应有关,您能调试哪些服务器响应吗?我猜这与您的服务器的响应有关,您能调试哪些服务器响应吗?