Wpis z mikrobloga

Pomuszcie ;_;

Testuję sobie #wykopapi w #golang, niby prosta sprawa. Robię

GET
z appkey'em, a w header ustawiam

appsign
z hashem md5 appSecret + url. Sama funkcja md5 w golang przyjmuje parametry w

[]byte
i zwraca

[Size]byte
, więc konwertuję te stringi do slice'ów i a zwraca stringa. I cokolwiek bym nie robił, serwer wypokowy zwraca mi code 6: niepoprawnie podpisane żądanie.

Może ktoś ma pomysł co robię źle? Niżej kod. #programowanie



package
```**```
 main

```**```
import
```**```
 (

        
```_```
"crypto/md5"
```_```

        
```_```
"fmt"
```_```

        
```_```
"io/ioutil"
```_```

        
```_```
"net/http"
```_```

)

```**```
func
```**```
 apiSign(appsecret, url 
```**```
string
```**```

```**```
string
```**```
 {

        header := 
```**```
append
```**```
([]
```**```
byte
```**```
(appsecret), url...)

        result := md5.Sum(header)

        
```**```
return
```**```
 
```**```
string
```**```
(result[:])

}

```**```
func
```**```
 main() {

        client := &http.Client{}

``````

        appsecret := 
```_```
"mojAppSecret"
```_```

        url := 
```_```
"[http://a.wykop.pl/Profile/Index/RonPaul/appkey,mojAppKey"](http://a.wykop.pl/Profile/Index/RonPaul/appkey,mojAppKey")
```_```

        req, _ := http.NewRequest(
```_```
"GET"
```_```
, url, 
```**```
nil
```**```
)

        header := apiSign(appsecret, url)

        req.Header.Add(
```_```
"apisign"
```_```
, header)

        resp, _ := client.Do(req)

        body, _ := ioutil.ReadAll(resp.Body)

        fmt.Printf(
```_```
"%s"
```_```
, body)

``````

}
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dodam, że sprawdzając sam md5 na generatorach online zgadza mi się z tym generowanym w aplikacji. Kurde, gdzie jest błąd? :<

Hash obliczam z

appSecret[http://a.wykop.pl/Profile/Index/RonPaul/appkey,mojAppKey](http://a.wykop.pl/Profile/Index/RonPaul/appkey,mojAppKey)
. Czy może jakoś inaczej trzeba?
  • Odpowiedz
@paffnucy: a mogłem zacząć od zaglądnięcia do tagu :D no nic, problem rozwiązany. Dzięki jeszcze raz.

To ja wracam do pisania wrappera w Go, a dla potomności zostawiam jak powinna wyglądać funkcja

apiSign
z
  • Odpowiedz