آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ارسال json به سرور از طریق jsoup

JKM  10 سال پیش  10 سال پیش
0 0

سلام
یک json object رو چطور با jsoup به یک لینک post کنم؟

 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Criss  10 سال پیش
+1 0

دقیقا یادم نیست ولی فک کنم متد زیر درست باشه

 Document doc =Jsoup.connect("http://www.address.com").data("key1","value1").data("key2","value2").userAgent("Mozilla").post();
  log.i("DOC", "" + doc);

 

پاسخ به سوال 
JKM  10 سال پیش
0 0

ممنون ولی جواب نمیده در خود وب سایت به این روش داده رو ارسال میکنه

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 تبدیل می کنم بفرستم باز نتیجه مطلوب حاصل نمیشه و ارسال با موفقیت حاصل نمیشه

0 0
انگار کسی جوابگو نیست :( (10 سال پیش)
پاسخ به سوال 
Criss  10 سال پیش
+1 0

کلی سرچ و تست کردم ، در کمال نا امدیدی رفتم روی 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 بهتر میتونه به شما کمک کنه


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .