ارسال json به سرور از طریق jsoup
دقیقا یادم نیست ولی فک کنم متد زیر درست باشه
Document doc =Jsoup.connect("http://www.address.com").data("key1","value1").data("key2","value2").userAgent("Mozilla").post(); log.i("DOC", "" +doc);
ممنون ولی جواب نمیده در خود وب سایت به این روش داده رو ارسال میکنه
var postData = JSON.stringify(updatedata);
AjaxMethod({ url: url, data: postData, success: function (data) { $('.shadow', dataPnl).hide(); if (data.success) { GetDataApi(data.idList); $('.MessageLabel', dataPnl).text(data.message); return; } else { $('.MessageLabel', dataPnl).text(data.message); } }, error: function () { //xhr, errorType, exception //alert('خطا :\n' + xhr.responseText); $('.shadow', dataPnl).hide(); $('.MessageLabel', dataPnl).text('خطا در ارتباط با سرور!'); } });
حالا من میخوام با jsoup داده مورد نظر که یک json است رو ارسال کنم
من این روش رو امتحان می کنم ولی جواب نمیده
JSONObject jsonObject = new JSONObject(json);
Document doc = Jsoup.connect(url) .cookie("SessionId", sessionId) .header("Content-Type", "application/json") .data(jsonObject.toString())
.post();
در قسمت data فقط پارامتر های string و stream دریافت می کنه من این JSONObject رو نمی تونم بفرستم
حالا اومدم به String تبدیل می کنم بفرستم باز نتیجه مطلوب حاصل نمیشه و ارسال با موفقیت حاصل نمیشه
کلی سرچ و تست کردم ، در کمال نا امدیدی رفتم روی Volley هم تست کردم ! تا اینکه متوجه شدم مشکل از چیه
معمولا سرور یه دلیل اینکه هدر به درستی ارسال نمیشه با ارور 406 مواجه میشید
پس شما باید هدر مناسب بسازید و همچنین ContentType مناسب داشته باشید
Response response = Jsoup.connect("URL")
.ignoreContentType(true)
.userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0")
.referrer("http://www.google.com")
.timeout(12000)
.followRedirects(true)
.method(Method.POST)
.data( "post", "test")
.execute();
Log.i("POST", "res : " + response.statusCode());
Document doc = response.parse();
Log.i("POST", "doc : " + doc);
این هم محتوای URL هست که بهش کانکت شدم :
<?
$value = $_POST['post'];
echo 'value : ' . $value;
//return '$value;
?>
این هم محتوای لاگ :
06-02 05:05:18.645: I/POST(6471): doc : <html>
06-02 05:05:18.645: I/POST(6471): <head></head>
06-02 05:05:18.645: I/POST(6471): <body>
06-02 05:05:18.645: I/POST(6471): value : test
06-02 05:05:18.645: I/POST(6471): </body>
06-02 05:05:18.645: I/POST(6471): </html>
اگر قرار وب سرویس داشته باشید بهتر از Volley استفاده کنید که برای اینکارها خیلی بهتر از Jsoup هست و استفاده از Jsoup کلا چیزی دیگه ایی هست ، برای زمانی که شما قراره از داده های Json استفاده کنید Volley بهتر میتونه به شما کمک کنه
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .