Volley Android Networking Library


120

ฉันมีคำถามเล็กน้อยเกี่ยวกับการใช้วอลเลย์ในโครงการของฉัน:

  1. ไลบรารีนี้สามารถใช้ในโปรเจ็กต์ Java หรือ Android ได้หรือไม่?
  2. ฉันเห็นหลายสาขาที่นี่และไม่มีเอกสารว่าจะเริ่มต้นด้วยสาขาใด ควรใช้สาขาไหนเริ่มต้นด้วย?
  3. คุณรวมไลบรารีนี้ในโครงการของคุณเองได้อย่างไร? แนวทางใดดีกว่า: ทำให้ Volley เป็นโครงการห้องสมุดแบบสแตนด์อโลนและหมุนขวดและวางไว้ในโครงการของคุณหรือคัดลอกซอร์สโค้ดทั้งหมดภายในโครงการของคุณ

7
เมื่อใดก็ตามที่คุณเห็นหลายสาขาใน git repo คุณควรสมมติว่าพวกเขาต้องการให้คุณโคลนและเริ่มใช้สาขาหลัก สาขาอื่นใดเป็นรอง
IgorGanapolsky

คุณยังสามารถเพิ่ม Volley เป็นโมดูลย่อย git คำอธิบายโดยละเอียด: gitsubmoduleasandroidtudiomodule.blogspot.in
Arpit Ratan

คำตอบ:


204
$ git clone https://android.googlesource.com/platform/frameworks/volley
$ cd volley
$ android update project -p .
$ ant jar

จากนั้นคัดลอกbin/volley.jarลงในlibs/โฟลเดอร์ของคุณและปิดคุณไป!

แหล่ง


8
หมายเหตุ: คุณจะต้องแก้ไขตัวแปร PATH ของคุณสำหรับสิ่งนี้ในการทำสิ่งนี้บน linux ให้ทำสิ่งต่อไปนี้ (ใน. profile ของคุณหรือที่ใดก็ตามที่คุณใส่ตัวแปร PATH): 1. ส่งออก ANDROID_HOME = <android-sdk-dir>
Johan S

104
มันวิเศษมากที่ฉันต้องไปที่ผลการค้นหาของ Google 5 รายการเพื่อค้นหาคำแนะนำในการติดตั้งไลบรารีเครือข่ายของตนเอง
Gowiem

24
คำถามร้ายแรง: เหตุใดจึงไม่มีการดาวน์โหลดไฟล์วอลเลย์โดยตรงจากที่ไหน? มีปัญหากับไฟล์ JAR สากลหนึ่งไฟล์หรือไม่?
PGMacDesign

5
ไม่มีใครได้รับ "วอลเลย์ไม่ใช่โครงการ vaild (ไม่พบ AndroidManifest.xml)
Ersen Osman

8
@ChintanSoni ~ 3 เดือนที่แล้วส่งคอมไพล์ c9ef93a บอกว่า "ย้ายจาก Gradle ไปยัง Maven" แทนที่จะเรียกใช้ "android update -p." ให้เรียกใช้คำสั่ง maven "mvn compile" และ "mvn package"
Jared Messenger

73

ในบทเรียน Volley Google สั่งให้เพิ่ม Volley ลงในโครงการของเราเป็นโครงการ Android Library หรือเป็น.jarไฟล์

วิธีสร้าง.jarไฟล์Volley โดยใช้Android StudioหรือEclipse มีดังนี้

บันทึก:

ในทั้งสองกรณีฉันขอแนะนำให้เปลี่ยนชื่อ.jarไฟล์เป็นวันที่ของการคอมมิตล่าสุดของ Volley นั่นคือvolley_20150319.jarเพื่อให้เวอร์ชันเรียบง่าย


Android Studio:

  1. โคลนที่เก็บ Volley ผ่าน Git
  2. นำเข้าโครงการไปยัง Android Studio (ฉันมักจะเลือกไฟล์ gradle ของโปรเจ็กต์เมื่อนำเข้าใน Android Studio)
  3. สร้างโครงการ (ฉันต้องเปลี่ยนการตั้งค่าการสร้าง gradle เพื่อให้สอดคล้องกับเครื่องมือสร้างล่าสุดและเวอร์ชันของ gradle แต่โดยปกติแล้วจะเป็นข้อมูลล่าสุด)
  4. ใน file explorer ของคุณไปที่ [your local path to volley]/build/intermediate/bundles/
  5. ทั้งในdebugและreleaseโฟลเดอร์คุณจะพบไฟล์ JAR ชื่อclasses.jar.
  6. คัดลอกไฟล์ JAR ลงในlibs/โฟลเดอร์ของคุณ
  7. Gradle sync เท่านี้ก็เสร็จเรียบร้อย

คราส:

  1. โคลนที่เก็บ Volley ผ่าน Git
  2. อิมพอร์ตโปรเจ็กต์ลงในคราส
  3. คลิกขวาที่โครงการแล้วเลือกส่งออก ...
  4. เลือกJava / ไฟล์
  5. เราสนใจเฉพาะในโฟลเดอร์srcและไม่มีอะไรอื่น วิธีที่ง่ายที่สุดในการตรวจสอบให้แน่ใจว่าได้เลือกไว้เท่านั้นคือการยกเลิกการเลือกโปรเจ็กต์จากนั้นเลือกโฟลเดอร์srcภายใน
  6. ตรวจสอบการส่งออกที่สร้างไฟล์ระดับและทรัพยากรตัวเลือก
  7. เลือก: ถ้าคุณต้องการ Javadoc ที่จะมองเห็นยังเลือกส่งออก Java ทรัพยากรแหล่งไฟล์
  8. สร้างไฟล์ JAR และวางไว้ในlibs/โฟลเดอร์ของคุณ

1
นี่มันเยี่ยมมาก เคล็ดลับที่สำคัญที่สุดสำหรับฉันคือ # 5 (เลือกเฉพาะ src) เนื่องจากสิ่งนี้ช่วยในไลบรารีอื่น ๆ ที่ฉันพยายามรวมไว้ด้วย
wblaschko

1
คุณช่วยฉันวัน! "ตรวจสอบโฟลเดอร์srcเท่านั้น" ใช้ได้กับฉัน :)
Wooseong Kim

48

1) ไลบรารีนี้สามารถใช้เป็นไลบรารีเครือข่ายในโปรเจ็กต์ Java ปกติได้หรือไม่หรือเป็นเฉพาะสำหรับ Android เท่านั้น

มีไว้สำหรับ Android เท่านั้นเนื่องจากขึ้นอยู่กับคลาสเฉพาะของ Android คุณสามารถบอกนี้โดยดูที่รหัสที่มาสำหรับสิ่งที่ชอบRequestQueue

2) ฉันเห็นหลายสาขาที่นี่และไม่มีเอกสารว่าจะเริ่มต้นด้วยสาขาใด ควรใช้สาขาไหนเริ่มต้นด้วย?

คำแนะนำจากงานนำเสนอ Google I | O คือเพียงแค่โคลนgitrepo ซึ่งจะดึงมาจากmasterสาขาโดยค่าเริ่มต้น

3) จะรวมไลบรารีนี้ในโครงการของคุณเองได้อย่างไร? แนวทางใดดีกว่า: ทำให้ Volley เป็นโครงการห้องสมุดแบบสแตนด์อโลนและหมุนขวดและวางไว้ในโครงการของคุณหรือคัดลอกซอร์สโค้ดทั้งหมดภายในโครงการของคุณ

คำแนะนำจากงานนำเสนอ Google I | O คือการเพิ่มซอร์สโค้ดในโครงการของคุณ โดยส่วนตัวแล้วฉันคิดว่านี่เป็นวิธีการที่แปลกประหลาด


ร้ายแรง: ข้อผิดพลาดระยะไกล: การเข้าถึงถูกปฏิเสธ (ไม่มีให้บริการในประเทศของคุณ)! หากฉันดาวน์โหลด jar และเพิ่ม jar ลงในโปรเจ็กต์ของฉันจะใช้งานได้ในประเทศของฉันหรือไม่ หรือแม้กระทั่งฉันจะดาวน์โหลด jar โดยไม่ต้องโคลนได้อย่างไร!
Dr.jacky

ใช่คำแนะนำของพวกเขาดูเหมือนจะแนะนำให้ใช้สาขา 'master' แต่ฉันพบว่ามันแปลกไปหน่อยเนื่องจากนายคนนั้นดูเหมือนจะเปลี่ยนไปเรื่อย ๆ บางทีอาจจะดีกว่าที่จะหาสาขาที่วางจำหน่ายล่าสุด
ทอม

41

คุณสามารถดาวน์โหลดvolley.jar

ที่มา: AndroidHive

คัดลอกVolley.jarไปยัง libs

แล้วก็

คลิกขวาที่volley.jar ->Add As Library

ใส่คำอธิบายภาพที่นี่


4
ขอบคุณมากสำหรับเรื่องนี้. ทุกคนแค่พูดว่า 'คัดลอก jar ไปยังโฟลเดอร์ lib ของคุณ' แล้วปล่อยไว้ที่นั้น
Hoser

cURL ระบุว่าโถนี้ยังไม่ได้รับการอัปเดตตั้งแต่วันที่ 1 พฤษภาคม 2014
yuval

Verson ไหใหม่ล่ะ
f470071

26

ขณะนี้ห้องสมุด Volley ได้รับการเผยแพร่โดย Android Open Source Project:

dependencies {
    implementation 'com.android.volley:volley:1.1.0'
}

4
ตรวจสอบให้แน่ใจว่าคุณลบ volley.jar ออกจากโฟลเดอร์ libs ของคุณหากคุณมีอยู่ในนั้น และลบการอ้างอิงถึง volley.jar ออกจากไฟล์ app / build.gradle ของคุณ
Silver Sagely

16

UPDATE: Volley เปิดให้บริการอย่างเป็นทางการแล้วผ่าน JCenter วิธีการนำเข้ามีดังนี้

compile 'com.android.volley:volley:1.0.0'

วิธีการยกเลิก:

หากคุณกำลังใช้ Gradle คุณสามารถนำเข้าวอลเล่ย์จากที่นี่

dependencies {
    compile 'com.mcxiaoke.volley:library:1.0.+'
}

บันทึก

นี่คือกระจกที่ไม่เป็นทางการ (มีการแก้ไขข้อผิดพลาดเล็กน้อยดูการเปลี่ยนแปลงสำหรับรายละเอียด) สำหรับไลบรารีวอลเลย์ของ Androidซอร์สโค้ดจะซิงโครไนซ์เป็นระยะกับที่เก็บวอลเลย์อย่างเป็นทางการ


1
สิ่งนี้ควรอยู่ที่ไหนในไฟล์
Tash Pemhiwa

หากคุณใช้ Gradle ในการสร้างแอปควรเป็นไฟล์ build.gradle ในโปรเจ็กต์ของคุณ หากคุณไม่ได้ใช้ Gradle ให้ดูวิธีแก้ปัญหาอื่น ๆ ที่โพสต์ไว้ที่นี่
C0D3LIC1OU5

1
ขอบคุณ แต่ฉันหมายถึงว่าไฟล์ build.gradle ข้างบนควรอยู่ที่ไหน
Tash Pemhiwa

ดังที่ The Metal Beard ระบุไว้ในความคิดเห็นของเขา ภายในการอ้างอิงหากคุณได้ประกาศไว้แล้ว ถ้าไม่ใช่ให้ประกาศที่ท้ายไฟล์ แต่อย่ารวมไว้ในแท็ก android
Zsolt Boldizsár

2
หมายเหตุ: นี่ไม่ใช่ทางการ มันเป็นกระจกสะท้อนของการซื้อคืนวอลเลย์
Itai Hanski

13

มีหลายวิธี

เนื่องจากมีคำตอบมากมายเกี่ยวกับแนวทางเดียว แต่ไม่มีคำตอบใดที่เปรียบเทียบวิธีต่างๆในการระดมยิงและวิ่งได้ฉันจึงใส่สองเซ็นต์ไว้ด้วยอย่าลังเลที่จะแก้ไข / ปรับปรุงคำตอบนี้เช่นกัน

เพิ่มเป็นไลบรารี - (วิธีแก้ปัญหาด่วน)

  1. ดาวน์โหลดได้จาก: androidhive
  2. วางไว้ใน[MyProjectPath]/app/libs/โฟลเดอร์ของคุณ
  3. ใน Android Studio right-clickแล้วเลือกAdd As Library...

ไฟล์ต้นฉบับจาก git - (วิธีแก้ปัญหาที่ค่อนข้างเป็นทางการ)

  1. ดาวน์โหลด / ติดตั้งไคลเอนต์ git (หากคุณยังไม่มีในระบบของคุณ) (อื่น ๆ ผ่านgit clone https://github.com/git/git... sry bad one แต่ไม่สามารถต้านทานได้ ^^)
  2. ปฏิบัติ git clone https://android.googlesource.com/platform/frameworks/volley
  3. คัดลอกcomโฟลเดอร์จากภายใน[path_where_you_typed_git_clone]/volley/srcไปยังapp/src/main/javaโฟลเดอร์โครงการของคุณ(หรือรวมเข้าด้วยกันแทนหากคุณมีโฟลเดอร์ com อยู่แล้ว !! ;-))

    ไฟล์จะปรากฏขึ้นทันทีใน Android Studio สำหรับ Eclipse คุณจะต้องไปright-clickที่srcโฟลเดอร์แล้วกดrefresh(หรือF5) ก่อน

    การทำผ่าน git คือสิ่งที่แนะนำอย่างเป็นทางการในบทช่วยสอนของ Android ( ดูที่นี่ )

ไล่ระดับผ่านกระจก "ไม่เป็นทางการ" - (โซลูชันแบบไดนามิก)

  1. ในsrc/build.gradleไฟล์โครงการของคุณให้เพิ่มการพึ่งพาวอลเลย์ดังต่อไปนี้:

        dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            // ...
    
            compile 'com.mcxiaoke.volley:library:1.+'
        }
  2. คลิกTry Againที่ควรจะปรากฏขึ้นที่ด้านบนของไฟล์ทันทีหรือเพียงแค่คลิกBuildหากไม่มี

    "ข้อได้เปรียบ" หลักที่นี่คือสิ่งนี้จะทำให้เวอร์ชันเป็นปัจจุบันสำหรับคุณในขณะที่อีกสองกรณีคุณจะต้องอัปเดตวอลเลย์ด้วยตนเอง

    ในด้าน "ข้อเสีย" นั้นไม่ได้มาจาก Google อย่างเป็นทางการ แต่เป็นมิเรอร์รายสัปดาห์ของบุคคลที่สาม

    แต่ทั้งสองประเด็นนี้สัมพันธ์กับสิ่งที่คุณต้องการ / ต้องการจริงๆ compile 'com.mcxiaoke.volley:library:1.0.7'นอกจากนี้หากคุณไม่ต้องการการปรับปรุงเพียงแค่ใส่รุ่นที่ต้องการมีแทนเช่น


11

หากคุณใช้ GIT สำหรับการจัดการโค้ดของคุณเองทำไมไม่เพิ่มเป็นโมดูลย่อยในโครงการ ...

git submodule add https://android.googlesource.com/platform/frameworks/volley -b master Volley

ด้วยวิธีนี้เมื่อมีการอัปเดตฐานรหัสวอลเลย์การอัปเดตจึงทำได้ง่าย ...

git submodule git pull

คุณสามารถขยายคลาส Volley หลักในโปรเจ็กต์ของคุณเองสำหรับการปรับเปลี่ยนซึ่งช่วยให้คุณไม่ต้องวุ่นวายกับการเข้ารหัสการเปลี่ยนแปลงทุกครั้งที่มีการอัปเดตเฟรมเวิร์กของ Volley


ปัญหาคือโครงการวอลเลย์ไม่ได้ถูกกำหนดให้เป็นห้องสมุด Android
Nicolas Lauquin

คุณต้องตั้งค่า Volley ใน IDE ของคุณเป็นไลบรารี
Simon.Ponder

การทำเช่นนี้จะแก้ไขคุณสมบัติของโปรเจ็กต์ดังนั้นโมดูลย่อยจะอยู่ในสถานะ "แก้ไข" ด้วยเหตุนี้ฉันจึงไม่ต้องการใช้วิธีแก้ปัญหานี้ ด้วยโครงการที่ "กำหนดอย่างถูกต้อง" ฉันจะใช้โมดูลย่อย แต่ไม่ใช่สำหรับ Volley ฉันสร้างขวดวอลเลย์จนถึงตอนนี้
Nicolas Lauquin

1
คุณยังสามารถดึงข้อมูลจากแหล่งที่มาของ Google ได้เมื่อทำการเปลี่ยนแปลง หากคุณต้องการแก้ไขรหัสและจัดเก็บสิ่งนั้นจากนั้นทำการโคลนสร้าง repo ในเครื่องของคุณอ้างอิงรีโมตสองตัวที่แตกต่างกันและใช้อันหนึ่งเพื่อดึงจากพวกเขาและอีกอันเพื่อพุชโค้ดที่คุณต้องการจัดเก็บ ฉันไม่แน่ใจว่าเหตุใดจึงรบกวนคุณที่จะมีโมดูลย่อยที่แก้ไขแล้วหากคุณจัดเก็บโครงการของคุณไว้ที่ใดก็ได้และคุณผลักดันจากโครงการหลักโดยไม่ส่งโมดูลไปที่ใดก็ตามคุณจะยังคงส่งข้อมูลอ้างอิงไปยังการกระทำของโมดูลย่อย เมื่อคุณเพิ่มเข้าไป
Simon.Ponder

8

นี่คือ Quickstart ขนาดเล็กสำหรับการร้องขอ Volley Http ซึ่งเป็นเรื่องง่ายมากที่จะรวมเข้าด้วยกัน

  • คุณต้องมีแอปพลิเคชั่น Volley RequestQueue:

    1. private static RequestQueue reqQueue;

คุณสามารถวางไว้ในคลาสแอปพลิเคชันของคุณและทำให้พร้อมใช้งานแบบคงที่ผ่าน getRequestQueue ()

  • จากนั้นคุณสามารถใช้เมธอด RequestQueue.add () เพื่อดำเนินการคำขอแรกด้วย Volley ได้แล้ว

    2. reqQueue.add(...)
  • ใช้ JsonObjectRequest เพื่อค้นหาวัตถุเดียวใช้ JsonArrayRequest เพื่อสอบถามรายการวัตถุ

    queue.add(new JsonArrayRequest(URL, new Listener<JSONArray>() {
    
        @Override
        public void onResponse(JSONArray response) {
            //SUCCESS
        }}, new ErrorListener() {
    
        @Override
        public void onErrorResponse(VolleyError error) {
            //ERROR
        }}));
  • อย่าลืมตั้งค่าส่วนหัว Http Expires อย่างถูกต้องบนฝั่งเซิร์ฟเวอร์ของคุณเพื่อให้ Volley สามารถใช้ประโยชน์จากคุณลักษณะแคชในตัวได้


2
ก่อนใช้ API RequestQueue คุณต้องเพิ่มไลบรารีนี้ในโปรเจ็กต์ของคุณ ...
IgorGanapolsky

2

อีกวิธีหนึ่งสำหรับ Android Studio ang Gradle:

คุณต้องมีสิ่งต่อไปใน build.gradle ของโครงการของคุณ (ในระดับโครงสร้างแอปของคุณ):

repositories {
    maven {
        url 'https://github.com/Goddchen/mvn-repo/raw/master/'
    }
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:20.+'
    compile 'com.android:volley:1.+'
}

คิดไม่ดีที่จะทำเช่นนี้ ห้องสมุดในนั้นมีอายุ 1 ปี และสงสัยจะได้รับการอัปเดต ;-)
Patrick Boos

1

โคลนโครงการจาก Git ก่อน

$git clone https://android.googlesource.com/platform/frameworks/volley
  • นำเข้าวอลเลย์ในคราส
  • คลิกขวาที่โครงการของคุณ -> คุณสมบัติ -> android
  • เพิ่มไลบรารี -> เลือกวอลเลย์ (ถ้าคุณไม่เห็นวอลเลย์ที่นั่นไลบรารีคลิกวอลเลย์ที่เข้มงวดคุณสมบัติ goto และ android และไลบรารีคลิก)
  • หลังจากที่คุณเพิ่มวอลเลย์เป็นห้องสมุดคุณสามารถเริ่มใช้งานได้ในแอปพลิเคชันของคุณ

ระดับพื้นฐานของวอลเลย์ที่คุณควรรู้คือ

  • RequestQueue
  • JsonArrayRequest
  • JsonObjectRequest

ในการใช้วอลเลย์ก่อนอื่นคุณต้องสร้างวัตถุของ RequestQueue

RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());

สอง -> ส่งคำขอโดยใช้ JsonArrayRequest หรือ JsonObjectRequest

JsonArrayRequest mJsonRequest = new JsonArrayRequest(url, 
            new Listener<JSONArray>() {

                @Override
                public void onResponse(JSONArray response) {
                    // here you can parse response and use accordingly
                }
            }, new ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    // here you will receive errors and show proper message according to error type

                }
            });

และในที่สุดใส่คำขอในคิว กล่าวคือ

mQueue.add(mJsonRequest);

นอกจากนี้ฉันขอแนะนำให้คุณสร้าง Singleton of RequestQuery


1

การเพิ่ม Volley jar (หรือ jar ใด ๆ ) ลงใน Android Studio 1.0.2 นั้นง่ายกว่ามาก จากภายนอก Android Studio ให้คัดลอกvolley.jarไปที่<yourproject>/app/libs(ซึ่งควรมีอยู่แล้ว) เนื่องจากการตั้งค่า Gradle เริ่มต้นมีบรรทัดนี้:

 compile fileTree(dir: 'libs', include: ['*.jar'])

... ทุกอย่างถูกตั้งค่าเรียบร้อยแล้ว ซึ่งอาจไม่เป็นเช่นนั้นเนื่องจากมุมมองโครงสร้างโครงการเริ่มต้น(File -> Project Structure)ไม่แสดงlibsไดเร็กทอรี หากต้องการดูว่าคุณจำเป็นต้องใช้เครื่องปั่นด้ายเหนือมุมมองโครงสร้างโครงการจะมีการเปลี่ยนแปลงไปAndroidProject

คุณจะเห็นว่ามันใช้งานได้โดยการสร้างแอป (อาจไม่จำเป็น) จากนั้นเริ่มพิมพ์โค้ดดังนี้:

 RequestQueue request

คุณจะเห็นว่า Android RequestQueue (com.android.volley)สตูดิโอจะแจ้งให้คุณกับงานที่ทำเสร็จ


1

นอกจากนี้ยังค่อนข้างง่ายที่จะสร้างไฟล์แก้จุดบกพร่องหากคุณต้องการ

git clone https://android.googlesource.com/platform/frameworks/volley

จากนั้นสร้างโครงการสตูดิโอ Android ใหม่ (เป็นเพียงโปรเจ็กต์แอปทั่วไป) ในไดเรกทอรีอื่น เมื่อเสร็จแล้วให้เพิ่มโมดูลย่อยใหม่ (ไฟล์ | โมดูลใหม่) เลือกตัวเลือกนำเข้าโครงการที่มีอยู่แล้วชี้ไปที่ไดเร็กทอรีที่คุณเช็คเอาต์วอลเลย์ เมื่อเสร็จแล้วคุณสามารถสร้างโมดูลของคุณและมันจะสร้างไฟล์ aar


1

การใช้ eclipse Luna คุณต้อง:

  • โคลนจาก GIT
  • ตัด (คัดลอกและลบ) โฟลเดอร์ COM ภายใต้โฟลเดอร์ JAVA ไปที่ด้านล่างโฟลเดอร์ SRC เหมือนในโครงการ Android ทั่วไป
  • เปลี่ยนเป้าหมาย project.properties เป็น 15 แทนที่จะเป็น 8
  • สร้างโครงการ
  • ส่งออกโครงการเป็นไฟล์ jar รวมถึงแหล่งที่มา - ใช้เครื่องมือส่งออก
  • เก็บไว้ใน jar ที่ส่งออกเฉพาะโฟลเดอร์ COM และโฟลเดอร์ META-INF ลบโฟลเดอร์อื่น ๆ ทั้งหมด - ใช้เครื่องมือ zip เพื่อลบเนื้อหาของ jar
  • ใช้โถนี้เป็นโครงการโถวอลเลย์ของคุณ
  • ใส่ขวด Volley ในโฟลเดอร์ lib ของโปรเจ็กต์ Android ปลายทางของคุณ

1

หากคุณใช้ Android Studio ซึ่งคุณควรใส่บรรทัดนี้ในไฟล์ gradle

compile 'com.mcxiaoke.volley:library:1.0.15'

หากคุณต้องการใช้เมธอด GET คุณควรมีอะไรแบบนั้น

private void weatherData() {
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(
        Request.Method.GET,
        "URL with JSON data",
        new Response.Listener<JSONObject>() {
             @Override
             public void onResponse(JSONObject response) {
                 try {
                      //Your code goes here      
                 } catch (JSONException e) {
                      Log.e("TAG", e.toString());
                 }
             }
        }, 
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
            }
        });
    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(jsonObjReq);
}

แต่ถ้าคุณต้องการโพสต์ข้อมูลในเซิร์ฟเวอร์คุณควรสร้างไลบรารี HashMap และ Volley จะแปลงค่าคีย์ / คู่เป็นออบเจ็กต์ JSON ก่อนที่จะโพสต์ในเซิร์ฟเวอร์ นี่คือตัวอย่าง

final HashMap<String, String> postParams = new HashMap<String, String>();
postParams.put("username", username);
postParams.put("password", password);

Response.Listener<JSONObject> listener;
Response.ErrorListener errorListener;
final JSONObject jsonObject = new JSONObject(postParams);

JsonObjectRequest jsonObjReq = new JsonObjectRequest(
    "YOUR URL WITH JSON DATA", 
    jsonObject,
    new com.android.volley.Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            Log.d("TAG", response.toString());
            try {
                if (response.getString("status").equals("fail")) {

                } else if (response.getString("status").equals("success")) {

                } catch (JSONException e) {
                     Log.e("TAG", e.toString())
                }
            }
        }, 
        new com.android.volley.Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
             //VolleyLog.d("TAG", "Error: " + error.getMessage());
            //pDialog.dismiss();

        }
    }) {
        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }
    };
    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);

    VolleySingleton.getInstance(getApplicationContext()).
    addToRequestQueue(jsonObjRequest);
 }

0

ฉันโคลนโครงการ Volleyและเพิ่มไฟล์คอนฟิกูเรชันซึ่งอนุญาตให้สร้างไลบรารีด้วย Gradle

ด้วยวิธีนี้คุณสามารถติดตั้งไลบรารีลงในที่เก็บ Maven ในพื้นที่ของคุณและอ้างอิงจากโครงการ Android ผ่าน Gradle

ความต้องการ

  1. Maven
  2. Gradle

วิธีใช้

  1. โคลนที่เก็บของฉัน
  2. สร้างและติดตั้งคลัง Volley
  3. อ้างอิงไลบรารีในโครงการ Android

แก้ไขข้อผิดพลาด

โปรดจำไว้ว่ามีโคลนต่างๆออกมีที่มีการปรับปรุงห้องสมุด อาจจำเป็นต้องรวมเข้าด้วยกันและรวบรวมไลบรารีเวอร์ชันปรับปรุงส่วนตัวของคุณ

ประโยชน์ที่ได้รับ

นอกเหนือไปจากห้องสมุดของตัวเองสร้างสคริปต์สร้างJavaDocและแหล่งที่มาของข้อมูลที่เก็บไว้


0

ฉันประสบปัญหาเมื่อไลบรารีการสนับสนุนแสดงอยู่ในบรรทัดที่สอง การเรียงลำดับคำสั่งทั้งสองนี้ใหม่ได้ผลสำหรับฉัน

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.mcxiaoke.volley:library:1.0.6'
    compile 'com.android.support:support-v4:20.+'
}

0

คุณสามารถเพิ่ม Volley เป็นโมดูลย่อย git ใน repo โปรเจ็กต์ปัจจุบันของคุณได้ โมดูลย่อย git นี้จะชี้ไปที่ git repo อย่างเป็นทางการของ Volley ดังนั้นคุณสามารถรับการอัปเดตจาก git repo อย่างเป็นทางการเพียงแค่อัปเดตตัวชี้โมดูลย่อย

ยิ่งไปกว่านั้นหากคุณเพิ่ม Volley เป็น Library Module ในโปรเจ็กต์หลักของคุณคุณสามารถปรับแต่งได้อย่างง่ายดาย จะมีประโยชน์มากสำหรับวัตถุประสงค์ในการดีบักเช่นกัน

เพื่อให้บรรลุสิ่งนี้ให้ทำตามขั้นตอนด้านล่าง:

ขั้นตอนที่ 1:

เพิ่มวอลเลย์เป็นโมดูลย่อยในโครงการแอปพลิเคชัน Android GIT Repo git submodule add -b master https://android.googlesource.com/platform/frameworks/volley Libraries / Volley

ขั้นตอนที่ II:

ใน settings.gradle เพิ่มสิ่งต่อไปนี้เพื่อเพิ่มวอลเลย์เป็นโมดูลโครงการสตูดิโอ รวมโครงการ ': Volley' (': Volley'). projectDir = ไฟล์ใหม่ ('../ Libraries / Volley')

ขั้นตอนที่ 3:

ใน app / build.gradle เพิ่มบรรทัดต่อไปนี้เพื่อรวบรวม Volley compile project (': Volley')

นั่นจะทั้งหมด! เพิ่มวอลเลย์ในโครงการสำเร็จแล้ว

ทุกครั้งที่คุณต้องการรับรหัสล่าสุดจาก repo อย่างเป็นทางการของ Google Volley เพียงเรียกใช้คำสั่งด้านล่าง

git submodule foreach git pull

สำหรับข้อมูลเพิ่มเติม: https://gitsubmoduleasandroidtudiomodule.blogspot.in/

โค้ดตัวอย่าง GIT Repo: https://github.com/arpitratan/AndroidGitSubmoduleAsModule


0

สำหรับผู้อ่านในอนาคต

ฉันรักที่จะทำงานร่วมกับวอลเล่ย์ เพื่อประหยัดเวลาในการพัฒนาฉันพยายามเขียนGloxey Netwok Managerห้องสมุดขนาดเล็กเพื่อตั้งค่า Volley กับโครงการของฉัน ประกอบด้วยตัวแยกวิเคราะห์ JSONและวิธีการอื่น ๆ ที่ช่วยในการตรวจสอบความพร้อมใช้งานของเครือข่าย

ไลบรารีมีConnectionManager.classวิธีการที่แตกต่างกันสำหรับคำขอVolley StringและVolley JSON คุณสามารถขอGET, PUT, POST, DELETEโดยมีหรือไม่มีส่วนหัวก็ได้ คุณสามารถอ่านเอกสารเต็มรูปแบบที่นี่

เพียงแค่ใส่บรรทัดนี้ในไฟล์ gradle ของคุณ

การอ้างอิง {

   compile 'io.gloxey.gnm:network-manager:1.0.1'

}

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.