2017-05-09 3 views
1

다른 요청을 할 수 있도록 sessionId를 가져 오려고합니다.
그래서 난 파이어 폭스 네트워크 모니터 (Ctrl 키 + 시프트 + Q)에 고개 이것을보고 : 요청 파이썬을 사용하여 sessionId 가져 오기

enter image description here

그래서 나는 파이썬 3에서 요청을 할 수있는 방법을 생각해이 같은 것들을 시도 :

import requests 
payload = {'uid' : 'username', 
     'pwd' : 'password'} 

r = requests.get(r'http://192.168.2.114(cgi-bin/wwwugw.cgi', data=payload) 

print r.text 

하지만 항상 "Response [400]"이 표시됩니다. 그것은 귀하의 질문에 매우 명확하지 않지만

enter image description here

감사
알렉스

+0

'requests.post' 여야합니다. 같은 형식을 사용하는 모든 항목을 전달해야합니다. 'method','params' 부분도 포함해야합니다. 올바른 URL을 입력했는지 확인하십시오. 귀하의 질문에있는 하나는 오타가 있습니다. – Himal

+0

@Himal 그래서 메소드 param을 입력 했으므로 이제 Errno 133 (페이로드 = { '메소드': 'ugw-login', \t 'params': { 'uid': 'gw', \t 'pwd': 'GATEWAY'}}) –

+0

가지고 계신 코드의 최신 버전과 전체 오류 메시지를 포함하도록 질문을 업데이트 해주십시오. – Himal

답변

0

,하지만 난 것과 몇 가지 문제를 발견했습니다 : 요청이 올 경우
, 나는 이런 식으로 뭔가를 얻어야한다 당신은 성취하려고 노력하고 있습니다. 당신이 세션 인증을 사용하는 경우

  1. 는, 당신은 당신이하고되지 않은 Cookie 헤더로 전송 SESSION_ID을 가정하고 있습니다.

  2. 400 응답 코드는 인증이 필요하지 않은 잘못된 요청을 의미합니다. get 요청 시작시 데이터를 보내는 이유는 무엇입니까? 데이터와 쿼리 매개 변수에는 차이가 있습니다.

+0

오, 그래, 내가 파이썬의 멍청하다고 말한 것을 잊어 버렸다. –

+0

그래, 우리 모두는 그런 실수를 범한다. 당신은 조금 더 나은 질문을 프레임해야합니다. – hspandher

0

그냥 당신을 위해 리디렉션 및 쿠키를 처리 할 세션을 사용

import requests 
payload = {'uid' : 'username', 
      'pwd' : 'password'} 

with requests.Session() as session: 
    r = session.post(r'http://192.168.2.114(cgi-bin/wwwugw.cgi', data=payload) 

    print(r.json) 

이 방법을 명시 적으로 sessionId을받을 필요가 없습니다,하지만 당신은 여전히 ​​원한다면, 당신이 할 수있는 반환 된 JSON을 사전으로 액세스하십시오.

+0

답변을 주셔서 감사합니다. 잘 작동하지 않습니다. Errno 133이 표시됩니다. 다른 방법으로이 작업을 수행 할 수 있습니까? –

+0

@ Alex.Munoz 당신은 오류를 게시 할 수 있습니까? – rhillhouse

관련 문제