-1
我正在爲我的android應用程序開發一個REST API。目前我還沒有將其整合到我的應用程序中,而是嘗試使用Chrome上流行的「高級休息客戶端應用程序」進行測試。處理GET方法的函數可以正常工作,並以json格式顯示來自db的記錄,但是當我嘗試測試處理POST的函數時,它不起作用。請我希望有人幫助我瞭解如何從「高級休息客戶端應用程序」測試我的發佈功能。無法測試Rest api
API代碼:
<?php
require_once '../include/DbConnect.php';
require '.././libs/Slim/Slim.php';
\Slim\Slim::registerAutoloader();
// create new Slim instance
$app = new \Slim\Slim();
$app->get('/users', 'getUser');
$app->post('/register', 'addUser');
$app->run();
function getUser(){
$sql = "SELECT * FROM users";
try{
$db = new DbConnect();
$conn = $db->connect();
$stmt = $conn->query($sql);
$users = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo '{"user": ', json_encode($users).'}';
} catch(PDOException $e){
echo '{"error":{"text":'. $e->getMessage().'}}';
}
}
function addUser() {
$request = \Slim\Slim::getInstance()->request();
$body = $request->getBody();
$user = json_decode($body);
$sql = "INSERT INTO users (fname, email) VALUES(:fname, :email)";
try{
$db = new DbConnect();
$conn = $db->connect();
$stmt = $conn->prepare($sql);
$stmt->bindParam("fname", $user->fname);
$stmt->bindParam("email", $user->email);
$stmt->execute();
$user->id = $conn->lastInsertId();
$db = null;
echo json_encode($user);
} catch(PDOException $e){
echo '{"error":{"text":'. $e->getMessage().'}}';
}
}
?>
所以你想知道如何使用Chrome REST客戶端的post方法嗎? – 2014-11-22 16:21:03
@Indra嘗試過它,但它不會將這些值解析到我的發佈函數中。這個輸出我得到{「fname」:null,「email」:null,「id」:「25」} – mish 2014-11-22 16:28:24
你在這裏發佈的代碼不會處理你的輸入......你真正的問題是什麼?你想知道關於REST客戶端或php代碼導致的錯誤? – 2014-11-22 16:32:28