alexa-tracking
Selamat Guest, Agan dapat mencoba tampilan baru KASKUS Masih Kangen Tampilan Sebelumnya
Kategori
Kategori
Home / FORUM / All / Tech / ... / Programmer Forum /
Execute cURL in JAVA,.??
1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/540d5c7c1cbfaaac3d8b4569/execute-curl-in-java

Execute cURL in JAVA,.??

langsung aje ya gan...
ane mau tanya nni, ane punya cURL seperti ini

curl -i -H "Content-Type: application/json" -X GET -d '{"id":"CE171"}' http://192.168.17.34:5758/rtdata/fleets

intinya adalah, dari cURL diatas, ane sedang ngirim sebuah data berbentuk JSON ( '{"id":"CE171"}' ) menggunakan method HTTP GET. nah gimana caranya biar cURL diatas bisa dieksekusi di java,.??
nanti kembaliaannya adalah data JSON baru yang mempunyai ID sesuai dengan data JSON yang kukirm di cURL diatas.

kalo misal kan cara itu susah ata ga bisa, mungkin agan2 disini tau cara nya biar method get itu bisa ngirim data juga..... di JAVA tentunya...
kalo cm method GET saja tanpa harus ngirim data, ane dah bisa,.
nih codingnnya

Spoiler for Contoh GET Java tanpa Ngirim data:
Diubah oleh: kokosip
Urutan Terlama
make gson

Code:

https://code.google.com/p/google-gson/

http://howtodoinjava.com/2014/06/17/google-gson-tutorial-convert-java-object-to-from-json/
Quote:


oke... tak coba dulu gan.....
Quote:


gan,. trus gson nya diapain,.?? koq ane ga nemu hubungannya sama cURL yahhhh
Quote:

ane cuma beberapa kali pake curl hanya utk keperluan tertentu dan jarang
jadi ane execute curl command di java - terus output curl ane parse lagi di java utk operasi berikutnya yg dibutuhkan

cara pendekatan tentu ga disarankan kalo ente intensif pake curl+java, coba pake curl java wrapper aja yg udah ada gan
Di Java kan ? Kenapa harus pake cURL ? Kenapa ga pake HttpClient aja ?

emoticon-Blue Guy Cendol (L) emoticon-Rate 5 Star Cheers
--
Cek thread share IT ane: http://kask.us/hnalI
Terima murid privat IT emoticon-Smilie
@veritas
krn solusi curl request cmd lebih simpel dibanding pake pake HttpClient untuk keperluan ane dulu
jd ane ingetnya langsung yg cara gituan

@TS : pake Apache HttpClient, jadi tambahin import yg diperlukan
Code:
        
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://192.168.17.34:5758/rtdata/fleets");
post.setHeader("Content-type", "application/json");
try {
List<NameValuePair> keyVal = new ArrayList<NameValuePair>(1);
keyVal.add(new BasicNameValuePair("id", "CE171"));
post.setEntity(new UrlEncodedFormEntity(keyVal));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
........
}
catch (IOException e) {
}

object br inilah yg ntar agan anu2in



Quote:


karena kalo pake cURL, ane bisa pass data JSON via HTTP GET gan, jadi ane pikir lebih enak execute cURL,.
Quote:


knapa pake cURL, karena ae bisa pass data JSON via method GET gan,.

Quote:


iyee gan,. ane akhirnya nyerah cari cara supaya method GET bisa ngirim data JSON, akhirnya ane pake method POST dg HttpClient, dan sukses gan....
makasih saran kodenya....

Quote:


Semua tools ada keperluannya masing2 gan,
kaya pisau ada macem2 bentuk dan kegunaan masing2, ada pisau dapur, pisau daging, pisau roti, dll.

Kalau cURL paling bagus kalo dipake utk scripting, dipake utk combine outputnya ke shell script, atau program lain.

Tapi kalau program kita didalamnya perlu ada HTTP Client (akses web) yang diprogram, dan adalah bagian internal dari program, maka gunakan tools dalam bentuk library di platform tsb (Java) (kalau tidak ada sih ya memang terpaksa menggunakan cURL, tapi biasanya sih hampir semua problem ada librarynya di Java).
Nah library Java tsb adalah Apache HTTP Client emoticon-Smilie

emoticon-Blue Guy Cendol (L) emoticon-Rate 5 Star Cheers
--
Cek thread share IT ane: http://kask.us/hnalI
Terima murid privat IT emoticon-Smilie
Diubah oleh veritas72
yg agan lakukan sebenernya send json di body request tapi method requestnya GET

Quote:


jadinya kurang lebih kayak gini,
Code:

GET / HTTP/1.1
User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
Host: dodol.com
Accept: */*
Content-Type: application/json
Content-Length: 14

{"id":"CE171"}
sebenarnya menyalahi aturan kalo ngirim data (-d {..} ) melalui GET, mestinya pake POST. Kalo pengen lempar parameter pake GET caranya pake ?key1=value1&key2=value2 ..., contoh:

Code:
curl -i -H "Content-Type: application/json" -X GET http://192.168.17.34:5758/rtdata/fleets?id=CE171
Quote:


Betul bgt gan, ane pengen pass json tpi lewat get,.

Quote:


bukan maksud ane mau menyalahi aturan, tapi ini permintaan bos ane,. soalnya kalo pake POST, ga ada autentificasinya... jadi kalo yang nge POST itu banyak, nanti server bisa down dan takutnya app nya bener2 mati... gtu penjelasan Bos ane gan.. dia nyontohin ngirim data via GET, tapi pake cURL...
nah ane cb cari java cURL tuh begimane...
Quote:

maksudnya gimana ga ada autentikasi? autentikasi ga ada hubungannya dgn HTTP GET/POST, itu dari sisi aplikasi yg ngurus. GET dan POST itu juga sama2 HTTP request, kebanyakan GET request juga bakalan bikin down server nya.

cara POST dgn JSON ada banyak, contohnya:
http://stackoverflow.com/questions/2...purlconnection

untuk kasus ente, tinggal setRequestMethod("POST"); diganti jadi setRequestMethod("GET");
Quote:


thanks gan infonya,. sudah bisa sekarang pake codingan yg ente share...
cm ane penasaran, bedanya GET ama POST itu sebenernya gimana,.??
saat setRequestMethod(); nya ku ganti POST bisa jalan, saat tak ganti GET jg bisa,. ga ada perbedaan hasil... bahkan saat tak ilangin setRequestMethod() nya, script ku tetep jalan...
lalu ane nyoba print getRequestMethod(), ternyata pas setRequestMethod() nya ga tak setting, maka defaultnya adalah GET...
Quote:


salah satu alasan kenapa pake GET bukan pake POST adalah ini

GET requests can be cached
GET requests remain in the browser history
GET requests can be bookmarked
GET requests should never be used when dealing with sensitive data
GET requests have length restrictions
GET requests should be used only to retrieve data

POST requests are never cached
POST requests do not remain in the browser history
POST requests cannot be bookmarked
POST requests have no restrictions on data length

Versi gugel translate.....
GET permintaan dapat di-cache
GET permintaan tetap dalam riwayat browser
GET permintaan dapat bookmarked
GET permintaan tidak boleh digunakan ketika berhadapan dengan data sensitif
GET permintaan memiliki batasan panjang
GET permintaan harus digunakan hanya untuk mengambil data

Permintaan POST tidak pernah cache
Permintaan POST tidak tetap dalam riwayat browser
Permintaan POST tidak dapat bookmarked
Permintaan POST tidak memiliki pembatasan panjang data

Sumur : http://www.w3schools.com/tags/ref_httpmethods.asp

jadi, kalo pake GET, data yang dikirim bisa dibatasi gan,. kalo pake POST kagak bisa,. gtu sih penjelasannya
Quote:

menurut rule nya:
GET = ngambil data
POST = insert data / ngambil data*
PUT = update data
DELETE = delete data

* karena GET ada batasan query string nya, untuk kasus tertentu yg panjang parameter nya bisa pake POST buat ngambil data.

Quote:

yg GET bisa dibatasi itu maksudnya kalo pake query string yg udah ane tunjukin di atas: ?key1=value1&key2=value2&...

Itu ada limitnya sekitar 2000 character kalo ga salah (dan tergantung browser juga). Kalo ente lempar parameter melalui request body itu ga ada batasan sekalipun pake GET, tapi itu menyalahi aturan standard dan beberapa aplikasi atau server di luar sana yg ngikutin rule nya pasti mengabaikan data request body dari GET, contohnya kek google.

Coba aja agan jalanin ini:

Code:
$ curl -X GET [url=http://www.google.co.id]www.google.co.id[/url] -d oracle


hasilnya pasti:
Error 400 (Bad Request)
Your client has issued a malformed or illegal request. That’s all we know.

Bocoran:
http://stackoverflow.com/a/17384851/844005
Quote:


oohh gtu,. ane jg sering dapat error message 400 BAD Request...
tapi kalo pake cURL,. pass json bisa gan meskipun pake GET.
contoh :
curl -i -H "Content-Type: application/json" -X GET -d '{"id":"CE171"}' http://192.168.17.34:5758/rtdata/fleets

makanya ane lagi cari gimana cara nya biar cURL bisa di execute di java
Quote:

curl emang bisa lempar parameter dari request body dgn GET, tapi ga semua server mau/bisa nerima, tergantung servernya ikut aturan yg standar atau ga. Kalo dlm kasus ente, sptnya server nya juga bikinan/custom dari perusahaan ente sendiri ya. Kalo bikinan sendiri tentu bisa diakali.
Diubah oleh wuruwuru
Quote:


iya servernya nih ada disamping ane,. cm PC biasa diInstal linux server...
emank bisa diakalin seperti itu sama BackEnd programmernya,. nah tugas ane adalah ngurusin yang sisi client... ane ga ngerti coding an backend... ane spesalis dekstop,. makanya cari cara biar bisa execute cURl di java... belum nemu sampe sekarang
ada yang bisa menggunakan httpclient atau phphttpclient, cara pake nya gimana nya saya sudah download scriptnya dan suda pake xampp.

Tuulunk tuulunk hehe


×
GDP Network
Copyright © 2018, Kaskus Networks, PT Darta Media Indonesia.
Ikuti KASKUS di