我正在寻找一个快速教程,介绍如何使用Golang执行请求,模拟那些将与curl一起使用的请求.我有两个我想要与之通信的API,它们基本上以相同的方式工作.一个是ElasticSearch,另一个是Phillips Hue.我知道这两个都在Go中有库.这不是我追求的,我正在努力学习如何做到这一点:
$ curl -XGET 'http://localhost:9200/twitter/tweet/_search' -d '{
"query" : {
"term" : { "user" : "kimchy" }
} }'
Run Code Online (Sandbox Code Playgroud)
随着Golang.我能找到的所有东西似乎都很难编码
http://url:port/api/_function?something=value?anotherthing=value...
Run Code Online (Sandbox Code Playgroud)
但是我已经在软件中浮动了JSON对象.有没有一种方法可以使用JSON字符串或结构或类似的东西来模拟CURL的-d功能?
我最近一直在使用C++,只使用了一小部分语言(我将其称为C语言),所以我一直在努力学习该语言的其他一些功能.为此,我打算编写一个简单的JSON解析器,几乎立即遇到了一个我无法破译的路障.这是代码:
//json.hpp
#include <cstring>
namespace JSON
{
const char WS[] = {0x20,0x09,0x0A,0x0D};
const char CONTROL[] = {0x5B,0x7B,0x5D,0x7D,0x3A,0x2C};
bool is_whitespace(char c) {
if (strchr(WS, c) != nullptr)
return true;
return false;
}
bool is_control_char(char c) {
if (strchr(CONTROL, c) != nullptr)
return true;
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
这是main.cpp:
#include <iostream>
#include "json.hpp"
using namespace std;
int main(int argc, char **argv) {
for(int i=0; i < 127; i++) {
if(JSON::is_whitespace((char) i)) {
cout << (char) i << " is whitespace." << endl; …Run Code Online (Sandbox Code Playgroud)