【北京/深圳】超融合领跑者SmartX招聘

回复

招聘应聘SmartX 发起了问题 • 1 人关注 • 0 个回复 • 249 次浏览 • 6 天前 • 来自相关话题

golang版本的curl请求库

开源程序mikemintang 发表了文章 • 0 个评论 • 249 次浏览 • 2017-09-15 07:55 • 来自相关话题

Github地址


https://github.com/mikemintang/go-curl


安装


go get github.com/mikemintang/go-curl

使用


package main

import (
"fmt"
"github.com/mikemintang/go-curl"
)

func main() {

url := "http://php.dev/api.php"

headers := map[string]string{
"User-Agent": "Sublime",
"Authorization": "Bearer access_token",
"Content-Type": "application/json",
}

cookies := map[string]string{
"userId": "12",
"loginTime": "15045682199",
}

queries := map[string]string{
"page": "2",
"act": "update",
}

postData := map[string]interface{}{
"name": "mike",
"age": 24,
"interests": []string{"basketball", "reading", "coding"},
"isAdmin": true,
}

// 链式操作
req := curl.NewRequest()
resp, err := req.
SetUrl(url).
SetHeaders(headers).
SetCookies(cookies).
SetQueries(queries).
SetPostData(postData).
Post()

if err != nil {
fmt.Println(err)
} else {
if resp.IsOk() {
fmt.Println(resp.Body)
} else {
fmt.Println(resp.Raw)
}
}

}

接收请求的api.php


<?php  

//echo json_encode($_GET); // 获取url地址中的查询参数
//echo json_encode(getallheaders()); // 获取请求头
//echo json_encode($_COOKIE); // 获取cookies
echo file_get_contents("php://input"); // 获取post提交的数据

function getallheaders() {
$headers = [];
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}

可导出的成员变量和方法



TodoList



  • [x] 以链式操作的方式发起请求

  • [ ] 以函数回调的方式发起请求

  • [ ] 以类Jquery Ajax的方式发起请求

  • [x] 发起GET/POST请求

  • [ ] 发起PUT/PATCH/DELETE/OPTIONS操作

  • [x] 以application/x-www-form-urlencoded形式提交post数据

  • [x] 以application/json形式提交post数据

  • [ ] 以multipart/form-data形式提交post数据

  • [ ] proxy代理设置

grpc-gateway的替代品--Turbo

开源程序zzxx513 发表了文章 • 0 个评论 • 199 次浏览 • 2017-09-15 01:06 • 来自相关话题

转载自:https://zhuanlan.zhihu.com/p/29350695

grpc-gateway是一个使用起来很便捷的工具,... 查看全部

转载自:https://zhuanlan.zhihu.com/p/29350695


grpc-gateway是一个使用起来很便捷的工具,可以很方便的把grpc接口用HTTP的方式暴露出去。


但在实际使用过程中,也在grpc-gateway里发现了一些问题,比如:


1,灵活性不够,如果有一些比较特殊的需求,在grpc-gateway中能扩展的余地不大;


2,严重依赖protocol buffer,而且必须是protobuf 3;


3,即使grpc服务的接口不变,只是修改HTTP接口定义,也必须重新生成代码,也就必须重新部署,重启服务;


4,只支持JSON格式的输入,不支持传统的kv格式的参数;


5,只支持grpc,嗯。。好吧,这不算问题,但thrift也很普及,是不是?


6,grpc-gateway在错误处理等方面都不够成熟,而且开发者似乎也不是很活跃。。。


Turbo努力解决了上面提到的问题,这是项目的地址:


vaporz/turbo


这是文档地址,很贴心很详细,中英双语哦~


Turbo Documentation


除了提供基本的与grpc-gateway类似的HTTP代理功能,Turbo还可以做到:


1,高度灵活,提供各种基于切面(不是吃的那个“切面”)思想的组件,可以在各个环节进行定制;


2,只依赖grpc,对protocol buffer没有要求,因此,你既可以使用protobuf2,也可以使用protobuf3;


3,HTTP接口的定义,以及与后端接口之间的映射,可以在运行时直接修改,并且立即生效!


4,不仅支持JSON格式的输入,也支持传统的kv格式的输入!


5,不仅支持grpc,还支持thrift!


6,自带命令行工具,一键创建可运行的项目,一键重新生成代码!


Turbo目前仍处于诞生初期,但现在的代码已经经过了认真的测试,认真细致的测试用例让测试覆盖率达到了98%。


当然,测试覆盖率说明不了多少问题,只有经过实战考验的代码才是可靠的!


因此,欢迎大家多多试用,多多吐槽,有任何建议或想法,请在GitHub上开Issue,坐等。


遇到任何问题,我愿意尽力帮助,尽力解决!


谢谢!

一个多功能心跳发送包——yapool

文章分享千手扉间 发表了文章 • 0 个评论 • 148 次浏览 • 2017-09-14 19:42 • 来自相关话题

自己实现了一个多功能心跳包

传送门 https://github.com/CrocdileChan/yapool

因为之... 查看全部

自己实现了一个多功能心跳包


传送门 https://github.com/CrocdileChan/yapool


因为之前的项目需要,我将一部分功能逻辑抽象出来,这个包可以供给做分布式的小伙伴用来造轮子。


基于这个包,可以轻易的实现服务发现、健康监测以及集群数据采集功能,心跳可以分为多个等级,开发者可以在里面定义自己需要传送到center(或者叫master)的讯息,center端可以对该信息进行处理。

GoCN每日新闻(2017-09-14)

回复

每日新闻astaxie 发起了问题 • 2 人关注 • 0 个回复 • 451 次浏览 • 2017-09-14 07:44 • 来自相关话题

GoCN每日新闻(2017-09-12)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 498 次浏览 • 2017-09-12 10:32 • 来自相关话题

GoCN每日新闻(2017-09-10)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 417 次浏览 • 2017-09-10 11:04 • 来自相关话题

GoCN每日新闻(2017-09-09)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 450 次浏览 • 2017-09-09 06:12 • 来自相关话题

GoCN每日新闻(2017-09-08)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 432 次浏览 • 2017-09-08 10:43 • 来自相关话题

GoCN每日新闻(2017-09-07)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 534 次浏览 • 2017-09-07 08:44 • 来自相关话题

GoCN每日新闻(2017-09-06)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 571 次浏览 • 2017-09-06 08:00 • 来自相关话题

GoCN每日新闻(2017-09-05)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 504 次浏览 • 2017-09-05 08:48 • 来自相关话题

GOCN每日新闻(2017-09-04)

回复

每日新闻傅小黑 发起了问题 • 1 人关注 • 0 个回复 • 454 次浏览 • 2017-09-04 09:12 • 来自相关话题

GoCN每日新闻(2017-09-03)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 408 次浏览 • 2017-09-03 17:58 • 来自相关话题

Windows平台下利用go语言imoprt "wmi"出错

回复

有问必答KSpeer 发起了问题 • 1 人关注 • 0 个回复 • 159 次浏览 • 2017-09-01 14:39 • 来自相关话题