<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Websocket on Marian Zeis Blog</title>
    <link>https://blog.zeis.de/tags/websocket/</link>
    <description>Recent content in Websocket on Marian Zeis Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 05 Feb 2026 09:30:00 +0100</lastBuildDate>
    <atom:link href="https://blog.zeis.de/tags/websocket/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Network Request &amp; Response Copier: An OData-Friendly DevTools Request Viewer</title>
      <link>https://blog.zeis.de/posts/2026-02-05-networkcopier-chrome/</link>
      <pubDate>Thu, 05 Feb 2026 09:30:00 +0100</pubDate>
      <guid>https://blog.zeis.de/posts/2026-02-05-networkcopier-chrome/</guid>
      <description>&lt;p&gt;AI assistants already help a lot, but they work best when you can give them good context. In web apps, the most important context is usually the real traffic between frontend and backend: &lt;strong&gt;request URLs, payloads, and responses&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;When debugging, I want to copy that information quickly and completely. And since I mostly work with &lt;strong&gt;UI5 and OData&lt;/strong&gt;, I usually need the full URL plus request and response body. In Chrome DevTools that often means a lot of manuall copy pasting, and if you need more than one request, it gets annoying fast.&lt;/p&gt;&#xA;&lt;p&gt;So I did the obvious thing: I built a small Chrome DevTools extension with AI help that solves this problem for me. Yes, I could also use MCP tooling or an automated browser to extract network data, but for day-to-day debugging I care about speed and I usually know exactly which requests matter.&lt;/p&gt;&#xA;&lt;p&gt;After using it locally for a while, I decided to publish my first extension in the Chrome Web Store.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Network Request &amp;amp; Response Copier inside Chrome DevTools&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-02-05-networkcopier-chrome/screenshot.jpg&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;strong&gt;Install it here:&lt;/strong&gt; &lt;a href=&#34;https://chromewebstore.google.com/detail/network-request-response/mphiaidjajmllkfkjlkfgmfkccpnomgc&#34;&gt;Chrome Web Store&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Update (2026-02-10):&lt;/strong&gt; Also available in the &lt;a href=&#34;https://microsoftedge.microsoft.com/addons/detail/network-request-respons/mmfhobojdlgibnffjhkidhdcjfbfhgpo&#34;&gt;Microsoft Edge Add-ons store&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href=&#34;https://github.com/marianfoo/chrome-extension-copynetworkrequests&#34;&gt;GitHub&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;the-solution&#34;&gt;The solution&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Network Request &amp;amp; Response Copier&lt;/strong&gt; adds a dedicated panel to DevTools that shows network entries in a clean, sortable list.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Left panel&lt;/strong&gt;: sortable request list with filters, a payload preview, and pinning&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Right panel&lt;/strong&gt;: request payload (top) and response body (bottom)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Copy buttons&lt;/strong&gt;: copy the selected entry, all filtered entries, or all pinned entries&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;And the part that matters most for my work: it makes OData traffic much easier to work with, especially &lt;code&gt;$batch&lt;/code&gt; requests.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;key-features&#34;&gt;Key features&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Copy in one click&lt;/strong&gt;: Copy the selected entry with &lt;code&gt;Ctrl/Cmd+C&lt;/code&gt;, or export all filtered or pinned entries. Output includes method, URL, payload, and response in one readable block.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;OData &lt;code&gt;$batch&lt;/code&gt; parsing&lt;/strong&gt;: Splits multipart &lt;code&gt;$batch&lt;/code&gt; into per-operation blocks and shows a quick “what’s inside” preview in the list (for example: &lt;code&gt;PATCH MockConfig | GET Users&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Better OData overview&lt;/strong&gt;: Keeps long &lt;code&gt;$select&lt;/code&gt; and &lt;code&gt;$filter&lt;/code&gt; URLs readable and shows request and response side-by-side, which makes sharing context (and debugging) much faster.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;WebSocket included&lt;/strong&gt;: Captures sent and received messages and shows them alongside HTTP entries.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DevTools-like workflow&lt;/strong&gt;: Sort, search, filter by method, resize panes, pin important calls.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Stays fast&lt;/strong&gt;: 500-entry cap, throttled UI updates, cached parsing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;how-it-works-short-version&#34;&gt;How it works (short version)&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Runs as a DevTools panel, so it only exists while DevTools is open.&lt;/li&gt;&#xA;&lt;li&gt;Collects HTTP traffic via &lt;code&gt;chrome.devtools.network.onRequestFinished&lt;/code&gt; (HAR entries).&lt;/li&gt;&#xA;&lt;li&gt;Detects and parses &lt;code&gt;$batch&lt;/code&gt; payloads to show a per-operation overview.&lt;/li&gt;&#xA;&lt;li&gt;Captures WebSocket messages by instrumenting &lt;code&gt;WebSocket&lt;/code&gt; in the inspected page.&lt;/li&gt;&#xA;&lt;li&gt;Copies to clipboard with fallbacks that work in the DevTools environment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;You&amp;rsquo;re welcome to use it and let me know what you think, try it out suggest changes!&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
