我希望能够使用lovoo API,但不知道如何开始.在运行Charles代理并查看流量后,我得出以下结论:
一旦用户通过应用程序(iPhone)登录,就会发送第一个GETto https://api.lovoo.com/oauth/requestToken?:
GET /oauth/requestToken? HTTP/1.1
Host api.lovoo.com
User-Agent LOVOO/612 (iPhone; iOS 10.2; Scale/3.00)
kissapi-app-idfv 1EC7A8E5-DF16-4E14-8EC9-98DD4772F903
tz Europe/xxx
kissapi-device-model iPhone 6s Plus
kissapi-app-version 3.17.0
kissapi-new-oauth 1
kissapi-device iphone
kissapi-app lovoo
wifi true
kissapi-adv-id 00000000-0000-0000-0000-000000000000
Connection keep-alive
kissapi-app-id 7F947A460DAFCA88556B2F35A6D78A3E
Authorization OAuth oauth_callback="oob", oauth_consumer_key="an.email%40gmail.com", oauth_nonce="A32CCA91-FB7A-4AA3-8314-0A9A6E67045E", oauth_signature="Sq8KTg%2FhVIGBaWgWXprPluczOs4%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1487017515", oauth_version="1.0"
Accept-Language en-CH;q=1, de-CH;q=0.9
kissapi-adv-on false
kissapi-version 1.20.0
kissapi-update-user-hash 6ea2bd15ea41d0dc8c2615589e2d52ec
Accept */*
kissapi-device-os 10.2
Accept-Encoding gzip, deflate
kissapi-sync-enabled 1
Run Code Online (Sandbox Code Playgroud)
这也给出了以下标记: oauth_token=44d83e8ef50f&oauth_token_secret=37998f6c6ef2e618
这是跟其他GET到https://api.lovoo.com/oauth/accessToken?:
GET /oauth/accessToken? HTTP/1.1
Host …Run Code Online (Sandbox Code Playgroud) 我正在运行一个grpc服务器侦听localhost:6000,公开 2 个grpc服务:RegisterSubscriberServiceServer和RegisterDropperServiceServer. 由于这两个服务都可以从 访问localhost:6000,我只想从存根拨打这个地址。
服务器看起来像这样:
func main() {
grpcServer := grpc.NewServer()
pb.RegisterSubscriberServiceServer(grpcServer, &subscriberServer{})
pb.RegisterDropperServiceServer(grpcServer, &dropperServer{})
l, err := net.Listen("tcp", ":6000")
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
log.Println("Listening on tcp://localhost:6000")
grpcServer.Serve(l)
}
Run Code Online (Sandbox Code Playgroud)
为什么我需要为每个grpc服务拨不同的插座?
type DropperRPC struct {
conn *grpc.ClientConn
client pb.DropperServiceClient
chunkSize int
}
type SubscriberRPC struct {
conn *grpc.ClientConn
client pb.SubscriberServiceClient
chunkSize int
}
func NewSubscriber() (c SubscriberRPC, err error) …Run Code Online (Sandbox Code Playgroud) 我是新手grpc并且一直试图json从网络服务器获取响应。然后存根可以json从rpc服务器请求。
在我的.proto文件中,我创建了一个消息类型:
message Post {
int64 number = 1;
string now = 2;
string name = 3;
}
Run Code Online (Sandbox Code Playgroud)
但我无法编组该number字段,因为protoc生成pb.go带有number标记的结构文件:
{
"no": "23",
"now": "12:06:46",
"name": "bob"
}
Run Code Online (Sandbox Code Playgroud)
如何强制Message使用消息字段的小写名称以外的标签“转换”?如使用json标签no,即使在字段名称Message是number。
是否可以使用匿名函数更新结构中的值?在python中,我将使用lambda执行以下操作:
inspect = lambda id: '/api/{}/inspect'.format(id)
Run Code Online (Sandbox Code Playgroud)
哪个会将动态id值放在字符串中.
在Go我尝试像他这样的东西:
type Info struct {
Inspect string
}
func Assign() Info {
i := &Info{}
i.Inspect = return func(id) {return fmt.Sprintf("/api/%s/inspect", id)}
return *i
}
Run Code Online (Sandbox Code Playgroud)
但我想更新这样的值:
temp := Assign()
tempID := temp.Inspect("test")
fmt.Println("/api/test/inspect")
Run Code Online (Sandbox Code Playgroud) 我正在尝试在页面上显示切片的内容。显示带有静态文本的模板有效。一旦我尝试覆盖发送到的切片ExTpl(),我就会收到 EOF 错误。
type Miner struct {
IP string `bson:"ip"`
Port int32 `bson:"port"`
FailCount int `bson:"failcount"`
}
type (
MinerController struct {
Session *mgo.Session
}
)
func ExTpl(w http.ResponseWriter, data []Miner) {
t, _ := template.ParseFiles("templates/header.tmpl", "templates/footer.tmpl", "templates/data.tmpl")
t.ExecuteTemplate(w, "data", data)
}
func FilterMiners(c *mgo.Collection, key, value string, limit int) ([]Miner, int, error) {
var results []Miner
query := bson.M{key: value}
if len(key) == 0 {
query = nil
}
err := c.Find(query).Limit(limit).All(&results)
if err != nil { …Run Code Online (Sandbox Code Playgroud) 首先,我的代码:
gci -Path C:\ -Recurse | select FullName | %{Get-FileHash $_}
我gci -Path C:\ -Recurse | select FullName输出错误,但输出正确的路径.
我在这做错了什么?
我想在主要任务中有2个"子任务",但由于某种原因我得到语法错误.
在我的/etc/ansible目录中,我必须遵循以下结构:
playbooks/
set_users.yml
roles/
users/
tasks/
main.yml
create_admin.yml
update_root.yml
vars/
main.yml
Run Code Online (Sandbox Code Playgroud)
在create_admin.yml文件中我有以下内容:
---
- name: Create srv_admin user
user: name=srv_admin password="{{ admin_password }}" groups=wheel shell=/bin/bash
Run Code Online (Sandbox Code Playgroud)
并在update_root.yml:
---
- name Update root password
user: name=root password="{{ root_password }}"
Run Code Online (Sandbox Code Playgroud)
然后我将这些任务包含在main.yml:
---
- name: Modify users
tasks:
- include: update_root.yml
- include: create_admin.yml
Run Code Online (Sandbox Code Playgroud)
我vars/main.yml包含了我的密码:
---
admin_password: SHA512HASH
root_password: SHA512HAS
Run Code Online (Sandbox Code Playgroud)
现在将它们整合在一起playbooks/set_users.yml:
---
- name: create user
hosts: servers
remote_user: root
roles: …Run Code Online (Sandbox Code Playgroud)