Hi Fathima,

You could use wire-shark or a built in GO functionality to examine the POST
request(body+headers). Try to compare the difference between the normal
curl command and the Go POST request body and headers, that way you'll find
a clue about the issue.

Regards,
Anuruddhs.

On Sun, Jun 21, 2015 at 10:33 AM, Fathima Dilhasha <dilhasha....@gmail.com>
wrote:

> Hi Punnadi,
>
> Thank you.
> I tried replacing the query in my code with the json string as the post
> suggests as follows.
>
> var query =
> []byte(`{"action"="login","userName"="<username>","password"="<password>"}`)
>
> Following is the response I got.
>
> *response Status: 200 OK*
> *response Headers: map[Server:[nginx/1.4.6 (Ubuntu)] Date:[Sun, 21 Jun
> 2015 17:20:26 GMT] Content-Type:[text/html] Connection:[keep-alive]
> Set-Cookie:[JSESSIONID=80150F3A762F6E3281F7D6395ACC91EE; Path=/appmgt/;
> Secure; HttpOnly]]*
> *response Body: Action is not specified*
>
> It seems that the problem is in the 'query' part in both cases, I get the
> same "Action is not specified" response.
> The correct format for that will solve the issue I think.
>
> Thanks.
> Regards,
> Dilhasha
>
> Fathima Dilhasha Nazeer <http://lk.linkedin.com/in/dilhasha/>
> (M.N.F.Dilhasha)
> Undergraduate | Department of Computer Science and Engineering
> University of Moratuwa
> Sri Lanka
>
> On Sun, Jun 21, 2015 at 10:28 PM, Punnadi Gunarathna <punn...@wso2.com>
> wrote:
>
>> Hi Fathima,
>>
>> Try this also.
>>
>>
>> http://stackoverflow.com/questions/24455147/go-lang-how-send-json-string-in-post-request
>>
>> On Sun, Jun 21, 2015 at 2:19 PM, Fathima Dilhasha <dilhasha....@gmail.com
>> > wrote:
>>
>>> Hi,
>>>
>>> I'm trying to implement the following REST call (curl command given) to
>>> WSO2 Appfactory in 'GO' using net/http [1]
>>> <http://golang.org/pkg/net/http/>.
>>>
>>>
>>> *curl -v -c cookies1 -X  POST -k
>>> https://apps.cloud.wso2.com/appmgt/site/blocks/user/login/ajax/login.jag
>>> <https://apps.cloud.wso2.com/appmgt/site/blocks/user/login/ajax/login.jag>
>>> -d 'action=login&userName=<username>&password=<password>' *
>>>
>>> The result from this command is as follows.
>>>
>>> ** Hostname was NOT found in DNS cache*
>>> **   Trying 54.209.187.16...*
>>> ** Connected to apps.cloud.wso2.com <http://apps.cloud.wso2.com>
>>> (54.209.187.16) port 443 (#0)*
>>> ** successfully set certificate verify locations:*
>>> **   CAfile: none*
>>> *  CApath: /etc/ssl/certs*
>>> ** SSLv3, TLS handshake, Client hello (1):*
>>> ** SSLv3, TLS handshake, Server hello (2):*
>>> ** SSLv3, TLS handshake, CERT (11):*
>>> ** SSLv3, TLS handshake, Server key exchange (12):*
>>> ** SSLv3, TLS handshake, Server finished (14):*
>>> ** SSLv3, TLS handshake, Client key exchange (16):*
>>> ** SSLv3, TLS change cipher, Client hello (1):*
>>> ** SSLv3, TLS handshake, Finished (20):*
>>> ** SSLv3, TLS change cipher, Client hello (1):*
>>> ** SSLv3, TLS handshake, Finished (20):*
>>> ** SSL connection using ECDHE-RSA-AES256-GCM-SHA384*
>>> ** Server certificate:*
>>> ** subject: C=US; ST=California; L=Palo Alto; O=WSO2, Inc.;
>>> CN=*.cloud.wso2.com <http://cloud.wso2.com>*
>>> ** start date: 2015-05-21 00:00:00 GMT*
>>> ** expire date: 2018-06-06 12:00:00 GMT*
>>> ** issuer: C=US; O=DigiCert Inc; OU=www.digicert.com
>>> <http://www.digicert.com>; CN=DigiCert SHA2 High Assurance Server CA*
>>> ** SSL certificate verify ok.*
>>> *> POST /appmgt/site/blocks/user/login/ajax/login.jag HTTP/1.1*
>>> *> User-Agent: curl/7.35.0*
>>> *> Host: apps.cloud.wso2.com <http://apps.cloud.wso2.com>*
>>> *> Accept: */**
>>> *> Content-Length: 75*
>>> *> Content-Type: application/x-www-form-urlencoded*
>>> *> *
>>> ** upload completely sent off: 75 out of 75 bytes*
>>> *< HTTP/1.1 200 OK*
>>> ** Server nginx/1.4.6 (Ubuntu) is not blacklisted*
>>> *< Server: nginx/1.4.6 (Ubuntu)*
>>> *< Date: Sun, 21 Jun 2015 08:25:21 GMT*
>>> *< Content-Type: text/html*
>>> *< Content-Length: 5*
>>> *< Connection: keep-alive*
>>> ** Added cookie JSESSIONID="************************" for domain
>>> apps.cloud.wso2.com <http://apps.cloud.wso2.com>, path /appmgt/, expire 0*
>>> *< Set-Cookie: JSESSIONID=****************************; Path=/appmgt/;
>>> Secure; HttpOnly*
>>> *< *
>>> *true*
>>> ** Connection #0 to host apps.cloud.wso2.com
>>> <http://apps.cloud.wso2.com> left intact*
>>>
>>>
>>> My code is as follows.
>>>
>>> package main
>>>
>>> import (
>>>    "bytes"
>>>    "fmt"
>>>    "net/http"
>>> )
>>>
>>> func main() {
>>>    client := &http.Client{}
>>>    var query = 
>>> []byte(`action=login&userName=<username>&password=<password>`)
>>>    r, _ := http.NewRequest("POST", 
>>> "https://apps.cloud.wso2.com/appmgt/site/blocks/user/login/ajax/login.jag";, 
>>> bytes.NewBuffer(query))
>>>    resp, _ := client.Do(r)
>>>    fmt.Println(resp)
>>> }
>>>
>>>
>>> The result from running the above code is as follows.
>>>
>>> *&{200 OK 200 HTTP/1.1 1 1 map[Server:[nginx/1.4.6 (Ubuntu)] Date:[Sun,
>>> 21 Jun 2015 08:38:38 GMT] Content-Type:[text/html] Connection:[keep-alive]
>>> Set-Cookie:[JSESSIONID=5820BCE0F4338F90735C9AFE7ED53B95; Path=/appmgt/;
>>> Secure; HttpOnly]] 0xc208213480 -1 [chunked] false map[] 0xc208026dd0
>>> 0xc2081f6060}*
>>>
>>> The request fails. I can't seem to find another way to perform this REST
>>> API call. Does anyone know a better way of implementing this request?
>>>
>>> [1] http://golang.org/pkg/net/http/
>>>
>>> Thanks.
>>> Regards,
>>> Dilhasha
>>>
>>>
>>> Fathima Dilhasha Nazeer <http://lk.linkedin.com/in/dilhasha/>
>>> (M.N.F.Dilhasha)
>>> Undergraduate | Department of Computer Science and Engineering
>>> University of Moratuwa
>>> Sri Lanka
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>> Thanks and Regards,
>>
>> Punnadi Gunarathna
>> Senior Software Engineer,
>> WSO2, Inc.; http://wso2.com <http://wso2>
>> Blog: http://hi-my-world.blogspot.com/
>> Tel : 94 11 214 5345
>> Fax :94 11 2145300
>>
>>
>>
>>  <http://lalajisureshika.blogspot.com/>
>>
>
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
*Anuruddha Premalal*
Software Eng. | WSO2 Inc.
Mobile : +94710461070
Web site : www.regilandvalley.com
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to