2012-05-01 33 views
2

我想通過張貼到包含我的用戶名和密碼格式在JSON中的.txt文件的身份驗證方法使用PHP身份驗證到Web服務。用我的用戶名和密碼創建一個JSON格式的文本文件?

這不工作,我很難找出爲什麼不。

這是我正在嘗試使用的代碼。首先,我有一個功能用來完成發佈。然後,我爲我的數據文件創建一個變量,爲我的URL創建auth服務。

<?php 


function do_post_request($url, $data, $optional_headers = null) 
{ 
    $params = array('http' => array(
      'method' => 'POST', 
      'content' => $data 
     )); 
    if ($optional_headers !== null) { 
$params['http']['header'] = $optional_headers; 
    } 
    $ctx = stream_context_create($params); 
    $fp = @fopen($url, 'rb', false, $ctx); 
    if (!$fp) { 
throw new Exception("Problem with $url, $php_errormsg"); 
    } 
    $response = @stream_get_contents($fp); 
    if ($response === false) { 
throw new Exception("Problem reading data from $url, $php_errormsg"); 
    } 
    return $response; 
} 

// Let's get logged in and get an authkey 

$url = 'http://service.com/auth'; 
$data= 'creds.txt'; 

$authkey = do_post_request($url, $data); 

     print_r($authkey); 

?> 

我creds.txt文件的文本:

{ 「身份驗證」:{ 「用戶名」: 「名爲myUsername」, 「密碼」: 「輸入mypassword」 }}

我做錯了什麼?我收到了無效的數據錯誤。我是否需要使用文本文件的完整URL?文本文件格式不正確?

該服務的文檔只能說我需要:

+0

你會在哪一行得到錯誤?此外,它可能是文本文件的內容被讀爲一個字符串,不會被解析爲json ... –

+0

也許服務除了'application/json'頭部? – Nadh

+0

我收到的錯誤說「錯誤」:「未在請求中設置用戶名或密碼」,「error_description」:「用戶名\ /密碼值無效」,「error_code」:「INVALID_LOGIN」 – bflora2

回答

0

「與您的用戶名和密碼的JSON格式的文本文件」不公開爲「service.com」或更多的細節關於網站本身它我們很難找出解決方案,因爲它可以是許多事情,但是你從不傳遞實際數據(只有文件路徑)。

嘗試:

$authkey = do_post_request($url, file_get_contents($data)); 
+0

問題解決!在jSON文件中缺少一些空格。 :(不知道JSON是如此挑剔有關字符間距 – bflora2

1

$data= 'creds.txt';應該是這樣的:

$data= file_get_contents('creds.txt'); 

我沒有看到你打開creds.txt任何地方,我相信你應該以JSON格式發送。

相關問題