php登录api,PHP登录REST API

我正在尝试创建一个restapi并寻找使用PHP登录的方法,文档提供了一个使用Python的登录示例,但是我不知道如何使用PHP来实现这一点。我在想下面的Python代码是否有PHP版本。在

参见以下代码:def login():

global sessionID

req = urllib2.Request("https:///appserver/j_spring_security_check")

req.add_data(urllib.urlencode({"j_username" : "admin","j_password" :"demoserver"}))

res = opener.open(req)

sessionID = getCookie("JSESSIONID",cookies)

# Get the value of JSESSIONID cookie

response = res.read()

return

如果需要使用PHP登录到web服务,我可以使用什么登录脚本(PHP版本)(考虑Python示例)?在

附加信息:Logging into the web service requires a JSON object as the request body with user name and password:

Successful execution of the method will return a Cookie session Id

Example request JSON: {"j_username" : "username", "j_password":"*******"}

User needs to parse the cookies and extract cookie with key as JSESSIONID. This JSESSIONID value needs to be added manually in all headers of the Rest calls

“Cookie”: “JSESSIONID=“ + cookieValue

另一个使用Python的示例:

^{pr2}$

请求标头:Host: 192.168.100.100:444

User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*\/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate, br

Referer: https://192.168.100.100:444/appserver/portal/login;jsessionid=6AD37194D43AB02BB79E26C71554958F

Cookie: JSESSIONID=6AD37194D43AB02BB79E26C71554958F

Connection: keep-alive

Upgrade-Insecure-Requests: 1

----------在

当我尝试使用Linux的curl时,下面是代码。在curl -k -i -H "Content-type: application/x-www-form-urlencoded" -c cookies.txt -X POST https://192.168.100.100:444/appserver/j_spring_security_check -d "j_username=admin&j_password=demoserver"

这是linuxcurl的结果,我相信自从我被路由到欢迎页面后,它已经成功地连接到了一起。在HTTP/1.1 302 Found

Date: Thu, 16 Feb 2017 18:41:59 GMT

Server: Apache/2.2.26 (Unix) mod_ssl/2.2.25 OpenSSL/1.0.1e mod_jk/1.2.37

Set-Cookie: JSESSIONID=358446CC1F87B2D698D48AFECA373691; Path=/appserver/; HttpOnly

Location: https://192.168.100.100:444/appserver/portal/welcome;jsessionid=358446CC1F87B2D698D48AFECA373691

Content-Length: 0

Access-Control-Allow-Origin: *

Content-Type: text/plain

----------在

但是当我尝试使用PHP curl编写代码时,仍然无法连接。在<?php

$ch = curl_init();

$url = "https://192.168.100.100:444/appserver/j_spring_security_chec‌​k";

$postData = 'j_username=admin&j_password=demoserver';

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_POST, 1); // -X

curl_setopt($ch, CURLOPT_POSTFIELDS,$postData); // -d

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'application/x-www-form-urlencoded'

)); // -H

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); // -c

curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); // -c

curl_setopt($ch, CURLOPT_HEADER, true); // -i

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // -k

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

echo curl_exec ($ch);

curl_close ($ch);

这是我浏览器中的结果标题。

请求URL:http://localhost/curl.php

请求方法:GET

远程地址:127.0.0.1:80

状态代码:200 OK

版本:HTTPResponse header:

Host: localhost

User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/\*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

DNT: 1

Connection: keep-alive

Upgrade-Insecure-Requests: 1

Response headers:

Date: Thu, 16 Feb 2017 18:43:52 GMT

Server: Apache/2.2.26 (Unix) mod_ssl/2.2.25 OpenSSL/1.0.1e mod_jk/1.2.37

Content-Language: en-US

Content-Length: 4815

Access-Control-Allow-Origin: *

Keep-Alive: timeout=5, max=100

Connection: Keep-Alive

Content-Type: text/html;charset=UTF-8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值