Android отправляет XML на страницу PHP - PullRequest
0 голосов
/ 25 июня 2011

Я пытаюсь создать приложение для Android на Java, и мне нужно отправить XML вместе с некоторой другой POST-информацией
Это работает, когда строка не содержит XML, и когда она содержит XML, подключается только POST-ключ для XML, а не содержимое

Я отправляю POST-информацию, используя следующий код

// Check if there is nothing to input
if (input == null)
   input = new HashMap<String, String>();

// Add the mobile's ID
input.put("MobileID", ((TelephonyManager)cxt.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId());

// The string for the input
String strInput = "";

// For each input
for (Entry<String, String> ent : input.entrySet()) {

   // Check if the string is not empty
   if (strInput.length() > 0)
      strInput += "&";

   // Add to the String
   strInput += URLEncoder.encode(ent.getKey(), Encoding.UTF_8.name()) + "=" + URLEncoder.encode(ent.getValue(), Encoding.UTF_8.name());
}

// Open the connection and setup default values
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setRequestMethod("POST");

// Set the RequestProperties
conn.setRequestProperty("Authorization",  "Basic " + CtrSettings.getInstance().getAuthentication());
conn.setRequestProperty("Content-Type",   "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", strInput.getBytes().length + "");

// Set the booleans for the connection
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);

// Create the input
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
dos.write(strInput.getBytes());
dos.flush();
dos.close();

// Return the connection
return conn;

Кто-нибудь может мне сказать, что я делаю не так?

Я что-то упускаю из-за Content-Type или?

Другой метод может заключаться в том, чтобы избежать использования XML внутри другой строки XML, но я не хочу, чтобы PHP распознал его как XML (и теги XML) до того, как я удалю (или каким словом это будет?) It

Ответы [ 2 ]

0 голосов
/ 25 июня 2011

Я решил использовать HttpPost вместо HttpsUrlConnection, и это, похоже, делает эту работу вместе с функцией PHP file_get_contents('php://input')
Я публикую этот пост здесь, так что любой, кто испытывает проблемы с этим, может посмотреть этот пост

0 голосов
/ 25 июня 2011

Я думаю, что ваш ContentType должен быть application / rss + xml

Gr

...