【发布时间】:2015-12-08 09:10:32
【问题描述】:
我正在编写一个将一些 CSV 格式的数据发布到 PHP 服务器的 Android 应用程序。
如果我只发布一行,服务器会正确读取它并执行它需要做的事情。但是,我无法发布多行。我在 .txt 文件中有 CSV 数据,我将此数据读入字符串并使用 HttpURLConnection 发送该字符串。问题是,虽然查看我手机中的 .txt 文件看起来不错,但服务器无法正确解释“\n”或“\r\n”,并且根本不会更新。我的猜测是它将整个字符串解释为一行或沿着这些行的东西。
发送的每一行都是这样读取的:
list($value1, $value2, $value3) = explode(",", $datarec);
是否有某种 PHP 可以识别的换行符?显然,它无法识别 \n 或 \r\n。
我目前将内容类型设置为 text/csv,但我也尝试过 text/html 并改用 br/>。
conn.setRequestProperty("Content-Type", "text/csv");
【问题讨论】:
-
如果必须发送数据数组,请使用名称值对。
-
名称值对不能只有 2 个字符串吗?或者你的意思是我本质上是对服务器进行多次写入而不是向服务器写入一个巨大的字符串?
-
从我读过的东西来看,NameValuePair 只接受 2 个参数,对吗?另外,它是在httpclient中专门定义的,对吧?我正在使用 HttpURLConnection 并有 3 个参数。
-
所以在名称值对中,将参数设置为连接字符串并在服务器上爆炸。我想你已经在使用它了。但是名称值对将很容易处理。
-
哦,我明白你的意思了!只需将一两个字符串组合到“名称”或“值”部分即可。不幸的是,我无法访问 PHP 方面的内容,但我忘了提及这一点。希望您发布为答案,以便我可以给您打勾!此外,我还发现 HttpURLConnection 仅用于发出一个请求,因此要发出多个请求,我将该特定连接放在一个 while 循环中并每次读取我的文件的一行。