From 411336975186b55f11e1b233d2892d6544519a8d Mon Sep 17 00:00:00 2001 From: 5803024006 Date: Wed, 26 Aug 2026 07:01:33 -0400 Subject: [PATCH] Upload files to "/" --- tugas prak webservice.py | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tugas prak webservice.py diff --git a/tugas prak webservice.py b/tugas prak webservice.py new file mode 100644 index 0000000..165788f --- /dev/null +++ b/tugas prak webservice.py @@ -0,0 +1,51 @@ +import requests +import xml.etree.ElementTree as ET + +def main(): + # 1. Menerima input angka dari pengguna (Prompt sederhana) + angka = input("Masukkan angka yang ingin dikonversi: ") + + # 2. Menyusun SOAP envelope secara terprogram + url = "http://www.dataaccess.com/webservicesserver/NumberConversion.wso" + + payload = f""" + + + + {angka} + + + """ + + # Menggunakan header yang terbukti berhasil di Postman Anda + headers = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', + 'Accept-Encoding': 'gzip, deflate', + 'Content-Type': 'text/xml; charset=utf-8', + 'SOAPAction': '""' + } + + try: + # Mengirim request HTTP POST + print("\nMengirim request ke server...") + response = requests.post(url, headers=headers, data=payload) + + # 3. Mem-parsing XML response + root = ET.fromstring(response.text) + + # SOAP response menggunakan namespace, jadi kita harus mendefinisikannya untuk pencarian + namespaces = {'m': 'http://www.dataaccess.com/webservicesserver/'} + + # Mencari tag dan mengambil teks di dalamnya + hasil = root.find('.//m:NumberToWordsResult', namespaces).text + + # Menampilkan hasil + print("="*30) + print(f"Hasil Konversi: {hasil}") + print("="*30) + + except Exception as e: + print(f"Terjadi kesalahan saat memproses request: {e}") + +if __name__ == "__main__": + main() \ No newline at end of file