Java PHP Post数组为空
当前无法访问服务器端脚本的$\u POST数组中的某些变量 上下文:我正在使用PHP从android设备向mySQL服务器提交一些值。 当我“创建新路由”时,php和java工作正常,例如: 构建要发布的变量列表:Java PHP Post数组为空,java,php,Java,Php,当前无法访问服务器端脚本的$\u POST数组中的某些变量 上下文:我正在使用PHP从android设备向mySQL服务器提交一些值。 当我“创建新路由”时,php和java工作正常,例如: 构建要发布的变量列表: List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("name", name)); par
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("startLat", startLat));
params.add(new BasicNameValuePair("startLong", startLong));
params.add(new BasicNameValuePair("endLat", endLat));
params.add(new BasicNameValuePair("endLong", endLong));
params.add(new BasicNameValuePair("waypoints", waypoints.toString()));
params.add(new BasicNameValuePair("rating", rating));
params.add(new BasicNameValuePair("difficulty", difficulty));
params.add(new BasicNameValuePair("enjoyability", enjoyability));
params.add(new BasicNameValuePair("count", count));
params.add(new BasicNameValuePair("sum", sum));
params.add(new BasicNameValuePair("countDiff", countDiff));
params.add(new BasicNameValuePair("sumDiff", sumDiff));
params.add(new BasicNameValuePair("countEnjoy", countEnjoy));
params.add(new BasicNameValuePair("sumEnjoy", sumEnjoy));
这可以很好地工作,并且这些值可用于$\u POST数组中的PHP脚本。
我遇到的问题是,当我使用以下方法执行完全相同的过程时(注意,在本例中,我正在“更新路由”,因此变量较少,这反映在用于更新路由的PHP脚本中):
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("rating", Double.toString(currentRating)));
params.add(new BasicNameValuePair("difficulty", Double.toString(currentDiff)));
params.add(new BasicNameValuePair("enjoyability", Double.toString(currentEnjoy)));
params.add(new BasicNameValuePair("count", Double.toString(currentCount)));
params.add(new BasicNameValuePair("sum", Double.toString(currentSum)));
params.add(new BasicNameValuePair("countDiff", Double.toString(currentDiffCount)));
params.add(new BasicNameValuePair("sumDiff", Double.toString(currentDiffSum)));
params.add(new BasicNameValuePair("countEnjoy", Double.toString(currentEnjoyCount)));
params.add(new BasicNameValuePair("sumEnjoy", Double.toString(currentEnjoySum)));
JSONObject jsonEdit = jsonParser.makeHttpRequest(url_edit,
"POST" +
"", params);
List params=new ArrayList();
参数添加(新的BasicNameValuePair(“名称”),名称);
参数add(新的BasicNameValuePair(“额定值”,双参数toString(电流额定值));
参数add(新的BasicNameValuePair(“难度”,Double.toString(currentDiff)));
参数add(新的BasicNameValuePair(“Enjoyibility”,Double.toString(CurrentPlease)));
params.add(新的BasicNameValuePair(“count”,Double.toString(currentCount)));
参数add(新的BasicNameValuePair(“sum”,Double.toString(currentSum));
添加参数(新的BasicNameValuePair(“countDiff”,Double.toString(currentDiffCount));
参数add(新的BasicNameValuePair(“sumDiff”,Double.toString(currentDiffSum));
添加参数(新的BasicNameValuePair(“CountPrevious”,Double.toString(currentEnjoyCount));
添加参数(新的BasicNameValuePair(“SumPrevious”,Double.toString(currentEnjoySum));
JSONObject jsonEdit=jsonParser.makeHttpRequest(url\u编辑,
“职位”+
“”,参数);
php脚本服务器端的$\u POST数组是空的。我意识到这可能有点模糊,但我希望您理解。我正在为两种方法发送数据的过程完全相同,但是后者是空的。您有旧的
===
vsequals
问题,添加了字符串interning
这就是罪魁祸首
if(method == "POST"){
应该是
if(method.equals("POST")){
第一种方法适用于普通字符串对象。与任何其他“POST”
实例相比,任何“POST”
实例的结果都是true(查找字符串内部以了解原因)。但是在后一种情况下,您会发现一些有趣的地方:
JSONObject jsonEdit = jsonParser.makeHttpRequest(url_edit,
"POST" + //Ooooops, what is this?
"", params);
现在比较“POST”
==“POST”+“
”…这不是按内容比较,而是按引用比较!第二个是不同的,比较结果为false
JSONObject jsonEdit = jsonParser.makeHttpRequest(url_edit,
"POST" + //Ooooops, what is this?
"", params);