با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
بازرس شبکه، فعالیت شبکه بلادرنگ را در یک جدول زمانی نمایش می دهد و داده های ارسالی و دریافتی را نشان می دهد. بازرس شبکه به شما امکان میدهد نحوه و زمان انتقال دادهها را بررسی کنید و کدهای زیرین را به طور مناسب بهینه کنید.
برای باز کردن Network Inspector مراحل زیر را دنبال کنید:
از نوار پیمایش Android Studio، View >Tool Windows >App Inspection را انتخاب کنید. پس از اینکه پنجره بازرسی برنامه به طور خودکار به فرآیند برنامه متصل شد، بازرس شبکه را از زبانه ها انتخاب کنید.
اگر پنجره بازرسی برنامه به طور خودکار به فرآیند برنامه متصل نمی شود، ممکن است لازم باشد فرآیند برنامه را به صورت دستی انتخاب کنید.
دستگاه و فرآیند برنامه ای را که می خواهید بازرسی کنید از پنجره App Inspection انتخاب کنید.
نمای کلی بازرس شبکه
در بالای پنجره Network Inspector، می توانید جدول زمانی رویداد را ببینید. برای انتخاب بخشی از جدول زمانی و بررسی ترافیک کلیک کنید و بکشید.
شکل 1. پنجره Network Inspector.
در بخش جزئیات، نمودار زمانبندی میتواند به شما کمک کند تا شناسایی کنید که در کجا مشکلات عملکرد ممکن است رخ دهد. شروع بخش زرد مربوط به اولین بایت درخواست ارسال شده است. شروع بخش آبی با اولین بایت پاسخ دریافت شده مطابقت دارد. انتهای بخش آبی مربوط به بایت نهایی پاسخ دریافتی است.
در قسمت زیر جدول زمانی، یکی از برگه های زیر را برای جزئیات بیشتر در مورد فعالیت شبکه در طول بخش انتخاب شده از جدول زمانی انتخاب کنید:
نمای اتصال : فایلهایی را که در طول بخش انتخابی جدول زمانی در تمام رشتههای CPU برنامه شما ارسال یا دریافت شدهاند فهرست میکند. برای هر درخواست، می توانید اندازه، نوع، وضعیت و مدت زمان ارسال را بررسی کنید. برای مرتبسازی این فهرست، روی هر یک از سرصفحههای ستون کلیک کنید. شما همچنین می توانید تفکیک دقیق بخش انتخاب شده از جدول زمانی را مشاهده کنید، که نشان می دهد هر فایل چه زمانی ارسال یا دریافت شده است.
نمای موضوع : فعالیت شبکه را در هر یک از رشته های CPU برنامه شما نمایش می دهد. همانطور که در شکل 2 نشان داده شده است، این نما به شما امکان می دهد بررسی کنید که کدام رشته ها مسئول هر درخواست شبکه هستند.
شکل 2. درخواست های شبکه را بر اساس رشته برنامه در نمای موضوع بررسی کنید.
نمای قوانین : قوانین به آزمایش نحوه عملکرد برنامه شما در مواجهه با پاسخ هایی با کدهای وضعیت، سرصفحه ها و بدنه های مختلف کمک می کند. هنگامی که یک قانون جدید ایجاد می کنید، قانون جدید خود را نام ببرید و اطلاعات مربوط به مبدا پاسخی را که می خواهید رهگیری کنید، در زیربخش Origin قرار دهید. در زیربخش Response می توانید محل و نحوه تغییر پاسخ را مشخص کنید. برای مثال، میتوانید این قانون را برای اجرای پاسخهایی با کد وضعیت خاص تنظیم کنید و همچنین آن کد وضعیت را تغییر دهید. در زیر بخش قوانین سرصفحه و قوانین بدنه ، قوانین فرعی ایجاد کنید که سرصفحه ها یا بدنه های پاسخ را اضافه یا تغییر دهند. قوانین به ترتیبی که فهرست شده اند اعمال می شوند. با علامت زدن کادر Active در کنار قانون، قانون را برای فعال یا غیرفعال کردن انتخاب کنید.
شکل 3. پنجره های قوانین بازرس شبکه و جزئیات قوانین .
از نمای اتصال یا نمای رشته ، روی نام درخواست کلیک کنید تا اطلاعات دقیق در مورد داده های ارسال شده یا دریافت شده را بررسی کنید. برای مشاهده سرصفحه و متن پاسخ، سرصفحه و متن درخواست، یا پشته تماس، روی برگه ها کلیک کنید.
در تب Response و Request ، روی لینک View Parsed کلیک کنید تا متن فرمت شده نمایش داده شود. برای نمایش متن خام روی لینک مشاهده منبع کلیک کنید.
شکل 4. با کلیک کردن روی پیوند مربوطه، بین متن خام و متن قالببندی شده جابهجا شوید.
علاوه بر نمایش درخواستهای شبکه برای HttpsURLConnection ، Network Inspector از OkHttp نیز پشتیبانی میکند. برخی از کتابخانه های شبکه شخص ثالث، مانند Retrofit ، از OkHttp به صورت داخلی استفاده می کنند، بنابراین Network Inspector به شما امکان می دهد فعالیت شبکه آنها را بررسی کنید. برنامه نمونه Now In Android از OkHttp برای عملیات شبکه خود استفاده می کند و مکان خوبی برای مشاهده آن در عمل است.
اگر از HttpsURLConnection API استفاده می کنید، همانطور که در نمونه زیر نشان داده شده است، فقط سربرگ هایی را در برگه Request مشاهده می کنید که با استفاده از متد setRequestProperty در کد خود قرار داده اید:
کاتلین
valurl=URL(MY_URL_EN)valurlConnection:HttpsURLConnection=url.openConnection()asHttpsURLConnection...// Sets acceptable encodings in the request header.urlConnection.setRequestProperty("Accept-Encoding","identity")
جاوا
URLurl=newURL(MY_URL_EN);HttpsURLConnectionurlConnection=(HttpsURLConnection)url.openConnection();//...// Sets acceptable encodings in the request header.urlConnection.setRequestProperty("Accept-Encoding","identity");
عیب یابی اتصال شبکه
اگر بازرس شبکه مقادیر ترافیک را شناسایی کند اما نتواند درخواست های شبکه پشتیبانی شده را شناسایی کند، پیام خطای زیر را دریافت می کنید:
**Network Inspector Data Unavailable:** There is no information for the
network traffic you've selected.
در حال حاضر، Network Inspector فقط از کتابخانه های HttpsURLConnection و OkHttp برای اتصالات شبکه پشتیبانی می کند. اگر برنامه شما از کتابخانه اتصال شبکه دیگری استفاده می کند، ممکن است نتوانید فعالیت شبکه خود را در Network Inspector مشاهده کنید. اگر این پیام خطا را دریافت کردهاید اما برنامه شما از HttpsURLConnection یا OkHttp استفاده میکند، یک اشکال را گزارش کنید یا ردیاب مشکل را جستجو کنید تا بازخورد خود را در گزارش موجود مرتبط با مشکل خود لحاظ کنید. همچنین می توانید از این منابع برای درخواست پشتیبانی برای کتابخانه های اضافی استفاده کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Inspect network traffic with the Network Inspector\n\nThe Network Inspector displays real-time network activity on a timeline, showing\ndata sent and received. The Network Inspector lets you examine how and when your\napp transfers data and optimize the underlying code appropriately.\n\nTo open the Network Inspector, follow these steps:\n\n1. From the Android Studio navigation bar, select **View \\\u003e** **Tool Windows \\\u003e** **App Inspection** . After the app inspection window automatically connects to an app process, select **Network Inspector** from the tabs.\n - If the app inspection window doesn't connect to an app process automatically, you may need to select an app process manually.\n2. Select the device and app process you want to inspect from the **App Inspection** window.\n\nNetwork Inspector overview\n--------------------------\n\nAt the top of the Network Inspector window, you can see the event timeline.\nClick and drag to select a portion of the timeline and inspect the traffic.\n**Figure 1.** The Network Inspector window.\n\nIn the details pane, the timing graph can help you identify where performance\nissues could be occurring. The start of the yellow section corresponds to the\nfirst byte of the request being sent. The start of the blue section corresponds\nto the first byte of the response being received. The end of the blue section\ncorresponds to the final byte of the response being received.\n\nIn the pane below the timeline, select one of\nthe following tabs for more detail about the network activity during the\nselected portion of the timeline:\n\n- **Connection View**: Lists files that were sent or received during the selected portion of the timeline across all of your app's CPU threads. For each request, you can inspect the size, type, status, and transmission duration. To sort this list, click any of the column headers. You can also see a detailed breakdown of the selected portion of the timeline, showing when each file was sent or received.\n- **Thread View**: Displays the network activity on each of your app's CPU\n threads. As shown in figure 2, this view lets you inspect which\n threads are responsible for each network request.\n\n **Figure 2.** Inspect network requests by app thread in the **Thread View**.\n- **Rules View** : Rules help test how your app behaves when encountering\n responses with different status codes, headers, and bodies. When you create a\n new rule, name your new rule and include information about the origin of the\n response you want to intercept under the **Origin** subsection. In the\n **Response** subsection, you can specify where and how to modify the\n response. For example, you can set the rule to execute on responses with a\n specific status code as well as modify that status code. In the\n **Header rules** and **Body rules** subsections, create sub-rules that add or\n modify response headers or bodies. Rules are applied in the order that\n they're listed. Choose which rule to enable or disable by checking the\n **Active** box next to the rule.\n\n **Figure 3.** Network Inspector **Rules** and **Rule Details** panes.\n\nFrom either the **Connection View** or **Thread View**, click a request name to\ninspect detailed information about the data sent or received. Click the tabs to\nview the response header and body, request header and body, or call stack.\n\nOn the **Response** and **Request** tabs, click the **View Parsed** link to\ndisplay formatted text. Click the **View Source** link to display raw text.\n**Figure 4.** Toggle between raw text and formatted text by clicking the corresponding link.\n\nIn addition to showing network requests for\n[`HttpsURLConnection`](/reference/javax/net/ssl/HttpsURLConnection), Network\nInspector also supports [`OkHttp`](http://square.github.io/okhttp).\nSome third-party network libraries, such as\n[Retrofit](https://square.github.io/retrofit/), use `OkHttp`\ninternally, so Network Inspector lets you inspect their network activity. The\n[Now In Android sample app](https://github.com/android/nowinandroid)\nuses `OkHttp` for its network operations and is a good place to see it in\naction.\n\nIf you are using the\n`HttpsURLConnection` API,\nyou only see headers in the **Request** tab that you include in your code using\nthe\n[`setRequestProperty`](/reference/java/net/URLConnection#setRequestProperty(java.lang.String,%20java.lang.String))\nmethod, as shown in the following sample: \n\n### Kotlin\n\n```kotlin\nval url = URL(MY_URL_EN)\nval urlConnection: HttpsURLConnection = url.openConnection() as HttpsURLConnection\n...\n// Sets acceptable encodings in the request header.\nurlConnection.setRequestProperty(\"Accept-Encoding\", \"identity\")\n```\n\n### Java\n\n```java\nURL url = new URL(MY_URL_EN);\nHttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();\n//...\n// Sets acceptable encodings in the request header.\nurlConnection.setRequestProperty(\"Accept-Encoding\", \"identity\");\n```\n\nTroubleshoot network connection\n-------------------------------\n\nIf the Network Inspector detects traffic values but can't identify any\nsupported network requests, you receive the following error message: \n\n **Network Inspector Data Unavailable:** There is no information for the\n network traffic you've selected.\n\nCurrently, the Network Inspector supports only the\n[`HttpsURLConnection`](/reference/javax/net/ssl/HttpsURLConnection)\nand [`OkHttp`](http://square.github.io/okhttp) libraries for network\nconnections. If your app uses another network connection library, you might not\nbe able to view your network activity in the Network Inspector. If you have\nreceived this error message but your app does use `HttpsURLConnection`\nor `OkHttp`, [report a bug](/studio/report-bugs) or\n[search the issue\ntracker](https://issuetracker.google.com/issues?q=componentid:317727%2B)\nto include your feedback in an existing report related to your issue. You\ncan also use these resources to request support for additional libraries."]]