Rumah > Soal Jawab > teks badan
Ia adalah masalah dengan protokol http Saya bekerja pada bahagian belakang Sekarang saya mendapati masalah dengan pengaturcara android Dia berkata bahawa data telah dihantar melalui permintaan POST, tetapi php saya perlu menggunakan jenis data json menerima data, tetapi saya Ramai orang yang saya lihat di Internet menggunakan $_POST[] untuk mendapatkan data.
Soalan
1 Adakah anda benar-benar memerlukan jenis data php atau json untuk menerima data? Jadi bagaimana untuk menulis kod PHP?
2 Adakah terdapat cara untuk permintaan Android Post mereka menghantar data untuk menambah nama? Sama seperti laman web kami, ia mempunyai nama.
Nama pengguna nama pengguna
Pas pengguna kata laluan ialah contoh. Terima kasih
巴扎黑2017-05-16 13:09:19
php menerima data pos, biasanya $_POST boleh digunakan, jika tidak, gunakan file_get_contents("php://input");
Data yang dia minta adalah dalam format json Sangat mudah untuk memprosesnya dengan PHP Anda hanya perlu menggunakan json_decode() untuk menghuraikannya dan ia akan menjadi tatasusunan dalam PHP.
Pembolehubah seperti nama pengguna dan kata laluan boleh dibungkus dalam json.
phpcn_u15822017-05-16 13:09:19
1. Adalah disyorkan untuk menggunakan kod berikut
$c = file_get_contents('php://input'); //解析获取的二进制流 获取的数据格式是json
$j = json_decode($c, true); //解析json数据,加第二个参数true 是数组 不然是对象
2. Mesti boleh tambah淡淡烟草味2017-05-16 13:09:19
Gunakan $_POST untuk data biasa, gunakan file_get_contents('php://input') untuk XML dan seumpamanya
Jangan gunakan $GLOBALS["HTTP_RAW_POST_DATA"], ia sudah lapuk dalam 7.0.
PHP中文网2017-05-16 13:09:19
Masalah ini mudah diselesaikan Pertama sekali, terdapat dua cara untuk lulus parameter permintaan pos:
serahan borang borang
Serahkan dalam format json
Bahagian belakang dan bahagian Android hanya perlu membincangkan cara untuk menerima data Ia tidak rumit seperti yang penulis katakan
我想大声告诉你2017-05-16 13:09:19
Apakah rangka kerja yang digunakan oleh pengarang Jika anda menggunakan laravel atau lumen, sambungkan terus Request::getContent(), dan kemudian json_decode(). Jika anda ingin melaksanakannya sendiri, anda boleh rujuk kaedah pelaksanaan laravel:
public function getContent($asResource = false)
{
$currentContentIsResource = is_resource($this->content);
if (PHP_VERSION_ID < 50600 && false === $this->content) {
throw new \LogicException('getContent() can only be called once when using the resource return type and PHP below 5.6.');
}
if (true === $asResource) {
if ($currentContentIsResource) {
rewind($this->content);
return $this->content;
}
// Content passed in parameter (test)
if (is_string($this->content)) {
$resource = fopen('php://temp', 'r+');
fwrite($resource, $this->content);
rewind($resource);
return $resource;
}
$this->content = false;
return fopen('php://input', 'rb');
}
if ($currentContentIsResource) {
rewind($this->content);
return stream_get_contents($this->content);
}
if (null === $this->content || false === $this->content) {
$this->content = file_get_contents('php://input');
}
return $this->content;
}