私の問題は解決しました サーバーの所有者は、POST/GET メソッドの送信の基本が機能し、完全に機能するかどうかを確認するために、いくつかのコードを削除しました。
何が問題なのかはまだわかりませんが、私の問題ではないことは確かです笑
メソッドをサーバーに送信しようとしPOST
ていますが、サーバーがGET
代わりにメソッドを取得することがわかりました。iPhoneで動作するようになったので、サーバーは正しいです。
これは私がデータを送信するために書いたコードです:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://myurl.nl/casus");
httppost.setHeader("Authorization", "xxxxxxxxxxxxxxx");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
//casus
nameValuePairs.add(new BasicNameValuePair("casusid", casus.id+""));
String woorden = "[";
for(int i = 0; i < words.length; i++){
woorden += "\""+words[i]+"\"";
if(i != words.length-1){
woorden += ",";
}
}
woorden += "]";
nameValuePairs.add(new BasicNameValuePair("woorden", woorden));
//info
SharedPreferences sharedPref = getSharedPreferences("omapp", MODE_PRIVATE);
String age = sharedPref.getString("age", "");
String sex = sharedPref.getString("sex", "");
nameValuePairs.add(new BasicNameValuePair("leeftijdscategorie", age));
nameValuePairs.add(new BasicNameValuePair("geslacht", sex));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
String responseBody = EntityUtils.toString(response.getEntity());
Log.d("json", responseBody);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
PHP コード:
// Service token authorization.
require_once('../classlib/Auth.php');
$auth = new Auth;
if ( !$auth->valid() ) {
header('HTTP/1.1 401 Unauthorized');
exit;
}
// Setup casussen.
require_once('../classlib/PDOFactory.php');
require_once('../classlib/Casussen.php');
$casussen = new Casussen;
$casussen->setPDO(PDOFactory::create());
$rs = (object) array();
switch ( $_SERVER['REQUEST_METHOD'] ) {
case 'GET': {
mail('sdgsdgsdg@gmail.com', 'The get method was called', print_r($_SERVER,1));
$fromcasusid = !empty($_GET['fromcasusid']) ? (int) $_GET['fromcasusid'] : null;
$rs->casussen =$casussen->get($fromcasusid);
break;
}
case 'POST': {
mail('jsdgsdgsn@gmail.com', 'The post method was called', print_r($_SERVER,1));
$casusreactie = json_decode(file_get_contents("php://input"));
try {
$casussen->post($casusreactie);
} catch ( Exception $e ) {
$rs->error = (object) array(
'code' => $e->getCode(),
'message' => $e->getMessage(),
);
}
break;
}
default: {
header('HTTP/1.1 405 Method Not Allowed');
exit;
}
} // switch
header('Content-type: application/json; charset=utf-8');
exit(json_encode($rs));