如何在php脚本中解码NSData?

如何在php脚本中解码NSData?,php,ios,swift,base64,Php,Ios,Swift,Base64,我在base64中对主体进行了编码,但我只能将其作为NSData传递,PHP将只对字符串进行解密。如何在php中解密NSData Swift代码 request.HTTPMethod = "POST" let encode = bodyData.dataUsingEncoding(NSUTF8StringEncoding)!; let crypt = encode.base64EncodedDataWithOptions(NSDataBase64EncodingOptions(r

我在base64中对主体进行了编码,但我只能将其作为NSData传递,PHP将只对字符串进行解密。如何在php中解密NSData

Swift代码

request.HTTPMethod = "POST"
    let encode = bodyData.dataUsingEncoding(NSUTF8StringEncoding)!;
    let crypt = encode.base64EncodedDataWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
    request.HTTPBody = crypt 
PHP代码

$postVarUser = base64_decode($_POST["usernamedata"]);
$postVarPass = base64_decode($_POST["passworddata"]);
echo $_POST["usernamedata"];//prints nil
echo $_POST["passworddata"];//prints nil

NSData
只是一堆字节。如果将HTTPBody设置为该值,则在解码之前,不能在PHP端使用
$\u POST
将其视为键/值


我不知道PHP,但通过谷歌搜索,你似乎想要
$HTTP\u RAW\u POST\u DATA
,试试:
base64\u decode($HTTP\u RAW\u POST\u DATA)

NSData
只是一堆字节。如果将HTTPBody设置为该值,则在解码之前,不能在PHP端使用
$\u POST
将其视为键/值


我不知道PHP,但通过谷歌搜索,你似乎想要
$HTTP\u RAW\u POST\u DATA
,试试:
base64\u decode($HTTP\u RAW\u POST\u DATA)

当您接收字节时,应该使用
php://input
,就像这样:

// Get data from POST
$dataEnc = file_get_contents('php://input');
// Decode data
$dataDec = base64_decode($dataEnc);
// Get username
$username = $dataDec["usernamedata"];
echo($username);

如果对象在编码之前已正确构造,则此操作应有效。

当您接收字节时,应使用
php://input
,就像这样:

// Get data from POST
$dataEnc = file_get_contents('php://input');
// Decode data
$dataDec = base64_decode($dataEnc);
// Get username
$username = $dataDec["usernamedata"];
echo($username);

如果对象在编码之前已正确构造,则此操作应该有效。

我对php脚本进行了更改,但在ios端是否正确?我在php脚本上做了更改,但在ios端这是否正确?