2017-11-21 13 views
0

토큰을 가져오고 싶지만 문제가 있습니다.루비 http 요청 게시 방법

내 코드 :

require 'uri' 
require 'net/http' 
url = URI.parse('https://ams.iaau.edu.kg/api/authentication/id/password') 
http = Net::HTTP.new(url.host, url.port) 
http.use_ssl = (url.scheme == 'https') 
request = Net::HTTP::Post.new(url.path) 
response = http.request(request) 
puts response.message 
puts response.code 

이 같은 출력이 있습니다

Unsupported Media Type 
415 

API의 문서 내가이 가정 하겠어 몇 가지 정보를 게시 한 것을 지금

URL /api/authentication/:id/:password Method POST 
URL Params Required: id=[Integer] password=[String] hashed in sha256 
Data 
    Params None 
    Success Response: Code: 200 OK 
    Content: {"authToken":"eyJhbGciOiJIUzI1NiJ9...", "expires": "2017-10-11T12:13:47.441"} 
    Error Response: Code: 401 Unauthorized 
    Content: {"Status":"Wrong Password"} Code: 401 Unauthorized 
    Content: {"Status":"User doesn't exist"} 
+0

더 구체적으로 기대할 수 있습니까? 맞다. 단순히 매개 변수없이 주어진 URL로 게시물 요청을하는 것이다. 415는 페이로드 형식이 지원되지 않는다는 것을 의미하지만 POST 요청에 페이로드가 없으므로 놀라운 결과는 아닙니다. 당신은 대부분 'Application/json'이나'text/xml'과 같은 Content-Type 헤더를 지정할 필요가있을 것입니다. 그러나이 서비스가 기대하는 바가 무엇인지 확신 할 수 없습니다. – engineersmnky

+0

id와 password와 같은 url에 매개 변수를 추가합니다. –

+0

i 대학 웹 사이트에 연결을 시도하고이 사이트에 api를 쓰는 사람은 다음과 같이하십시오. url = URI ("https://ams.iaau.edu.kg/api/authentication/13010106044/sha-256 해시") –

답변

0

좋아 응답은 json이기 때문에 json API입니다.

업데이트이 시도 대신에 내가 지금 401 권한은 원래의 코드를 원하는 경우 내가 ID 또는 암호

을 가지고 있지 않기 때문에 예상대로 내가 찾은 해결책을 얻고있다

require 'uri' 
require 'net/http' 
uri = URI.parse('https://ams.iaau.edu.kg/api/authentication/id/password') 
http = Net::HTTP.new(uri.host, uri.port) 
http.use_ssl = (uri.scheme == 'https') 
response = http.send_request('POST',uri.request_uri) 

요청의 내용 유형을 직접 설정하는 예

require 'uri' 
require 'net/http' 
url = URI.parse('https://ams.iaau.edu.kg/api/authentication/id/password') 
http = Net::HTTP.new(url.host, url.port) 
http.use_ssl = (url.scheme == 'https') 
request = Net::HTTP::Post.new(url.path) 
request.content_type = 'application/json' # HERE 
response = http.request(request) 
+0

지금 내가 가지고있는 것 : 나쁜 요청, 400 –

+0

그것은 약간의 thinsg를 시도하고 단지 curl을 사용하기 때문에 당신에게 돌아가는 것이 이상하다. 콘텐츠 유형을 지정하거나 지정하지 않고 401을 얻는다. – engineersmnky

+0

@MaratTynarbekov이 게시물을 사용하여 업데이트 된 게시물을 확인하십시오. 이제 자격 증명없이 얻을 수있는 한 401 호를 얻고 있습니다. – engineersmnky