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