Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में URL एन्कोड कैसे करें?

परिचय

यह ट्यूटोरियल दिखाता है कि Android में URL एन्कोडिंग कैसे करें। स्पेशल कैरेक्टर्स (स्पेस, हिंदी टेक्स्ट, सिम्बल्स) को URL-सेफ फॉर्मेट में बदलने के लिए URLEncoder क्लास का उपयोग करते हैं।

आवश्यक चरण

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project से नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट फ़ाइल (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="4dp"
    tools:context=".MainActivity">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <Button
        android:id="@+id/btnEncode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="URL लोड करें"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true" />

</RelativeLayout>

चरण 3: मुख्य गतिविधि (src/MainActivity.java)

import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class MainActivity extends AppCompatActivity {
    Button button;
    private WebView webView;
    String strURL;
    private String query;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webView);
        button = findViewById(R.id.btnEncode);

        strURL = "https://stackoverflow.com/search?q=";

        try {
            // क्वेरी स्ट्रिंग एन्कोड करें
            query = URLEncoder.encode("android drawables", "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        strURL += query;

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                webView.setWebViewClient(new WebViewClient() {
                    @Override
                    public void onPageStarted(WebView view, String url, Bitmap favicon) {
                        // पेज लोड शुरू
                    }

                    @Override
                    public void onPageFinished(WebView view, String url) {
                        Toast.makeText(getApplicationContext(), "पेज लोड हो गया", Toast.LENGTH_SHORT).show();
                    }
                });

                webView.getSettings().setJavaScriptEnabled(true);
                webView.loadUrl(strURL);
            }
        });
    }
}

चरण 4: मैनिफेस्ट फ़ाइल (AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

ऐप चलाएं

डिवाइस कनेक्ट करें, Run क्लिक करें। "URL लोड करें" बटन दबाएं - एन्कोडेड URL के साथ StackOverflow खुलेगा।

Android में URL एन्कोड कैसे करें?

URL एन्कोडिंग के मुख्य बिंदु

  • URLEncoder.encode(String, "UTF-8") - स्ट्रिंग को URL-सेफ बनाता है। स्पेस → + या %20।
  • केवल क्वेरी पैरामीटर वैल्यू एन्कोड करें, पूरा URL नहीं।
  • UnsupportedEncodingException चेक्ड एक्सेप्शन है - try-catch जरूरी।
  • डिकोडिंग के लिए: URLDecoder.decode(String, "UTF-8")।

उदाहरण

String query = "हिंदी टेक्स्ट & स्पेशल!";
String encoded = URLEncoder.encode(query, "UTF-8");
// परिणाम: "%E0%A4%B9%E0%A4%BF%E0%A4%82%E0%A4%A6%E0%A5%80+%E0%A4%9F%E0%A5%87%E0%A4%95%E0%A5%8D%E0%A4%B8%E0%A5%8D%E0%A4%9F+%26+%E0%A4%B8%E0%A4%AA%E0%A5%87%E0%A4%B6%E0%A4%B2%21"

आधुनिक विकल्प

  • OkHttp HttpUrl - बिल्डर पैटर्न से स्वचालित एन्कोडिंग।
  • Retrofit @Query - ऑटोमैटिक एन्कोडिंग।
  • Uri.Builder - Android बिल्ट-इन, क्वेरी पैरामीटर जोड़ते समय एन्कोड करता है।
// Uri.Builder उदाहरण
Uri uri = new Uri.Builder()
    .scheme("https")
    .authority("example.com")
    .appendPath("search")
    .appendQueryParameter("q", "हिंदी टेक्स्ट") // ऑटो एन्कोड
    .build();
  1. Android में WebView में URL लोड करते समय प्रोग्रेस बार कैसे दिखाएं? Android में WebView में URL लोड करते समय प्रोग्रेस बार कैसे दिखाएं?

    Android WebView में प्रोग्रेस बार दिखाने का गाइड यह ट्यूटोरियल दिखाता है कि जब WebView में कोई URL लोड हो रहा हो, तो प्रोग्रेस बार कैसे दिखाया जाए और लोडिंग पूरी होने पर उसे कैसे छुपाया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं। चरण 2: लेआउट फ़

  1. एंड्रॉइड में URL से ImageView में इमेज कैसे लोड करें? एंड्रॉइड में URL से ImageView में इमेज कैसे लोड करें?

    एंड्रॉइड में इंटरनेट से इमेज लोड करने का आसान तरीका यह उदाहरण दर्शाता है कि AsyncTask का उपयोग करके URL से ImageView में इमेज कैसे लोड करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं और आवश्यक विवरण भरें। चरण 2: लेआउट में ImageView जोड़ें res/layout/activity_main.xml

  1. Android WebView में URL लोडिंग पूरी होने पर लिस्टनर कैसे लगाएं? Android WebView में URL लोडिंग पूरी होने पर लिस्टनर कैसे लगाएं?

    यह उदाहरण दर्शाता है कि WebView में पेज लोडिंग प्रोग्रेस और पूरा होने को WebViewClient और WebChromeClient से कैसे मॉनिटर किया जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project। चरण 2: लेआउट XML res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-8?> <Rela