From andreas.hengsbach@nexoma.com Fri Mar 13 11:30:59 2026 From: Andreas Hengsbach | nexoma To: basex-talk@mailman.uni-konstanz.de Subject: [basex-talk] How can I mock a http response correctly Date: Fri, 13 Mar 2026 11:30:50 +0000 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7205621964991119004==" --===============7205621964991119004== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hello everybody, I'm currently trying to mock the HTTP client's response for unit tests. In both cases, I have a sequence, but I need to handle them differently. Why is that, and how can I correctly mock a response so that it behaves exact= ly like the real response? Here's my test script: # schnipp declare function local:httpMockResponse() { ( , bar ) }; {http:send-request((),"https://nexoma.de")[2]/html/name()}, {local:httpMockResponse()[2]/html/name()}, {local:httpMockResponse()[2]/name()} (: Why one level lower he= re? :) # schnapp I just don't get it. :( Best regards Andreas --===============7205621964991119004== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl eHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIiBzdHls ZT0iZGlzcGxheTpub25lOyI+IFAge21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7fSA8L3N0 eWxlPgo8L2hlYWQ+Cjxib2R5IGRpcj0ibHRyIj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFw dG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhl bHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMXB0OyBjb2xvcjogcmdiKDAsIDAsIDAp OyIgY2xhc3M9ImVsZW1lbnRUb1Byb29mIj4KSGVsbG8gZXZlcnlib2R5LDwvZGl2Pgo8ZGl2IHN0 eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250 U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7 IGNvbG9yOiByZ2IoMCwgMCwgMCk7IiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiPgo8YnI+CjwvZGl2 Pgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0 b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNp emU6IDExcHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiPgpJ J20gY3VycmVudGx5IHRyeWluZyB0byBtb2NrIHRoZSBIVFRQIGNsaWVudCdzIHJlc3BvbnNlIGZv ciB1bml0IHRlc3RzLjwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9z X0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBz YW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IiBjbGFzcz0i ZWxlbWVudFRvUHJvb2YiPgpJbiBib3RoIGNhc2VzLCBJIGhhdmUgYSBzZXF1ZW5jZSwgYnV0IEkg bmVlZCB0byBoYW5kbGUgdGhlbSBkaWZmZXJlbnRseS48L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1m YW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENh bGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMXB0OyBjb2xvcjogcmdi KDAsIDAsIDApOyIgY2xhc3M9ImVsZW1lbnRUb1Byb29mIj4KPGJyPgo8L2Rpdj4KPGRpdiBzdHls ZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNl cnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMXB0OyBj b2xvcjogcmdiKDAsIDAsIDApOyIgY2xhc3M9ImVsZW1lbnRUb1Byb29mIj4KV2h5IGlzIHRoYXQs IGFuZCBob3cgY2FuIEkgY29ycmVjdGx5IG1vY2sgYSByZXNwb25zZSBzbyB0aGF0IGl0IGJlaGF2 ZXMgZXhhY3RseSBsaWtlIHRoZSByZWFsIHJlc3BvbnNlPzwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250 LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwg Q2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiBy Z2IoMCwgMCwgMCk7IiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiPgo8YnI+CjwvZGl2Pgo8ZGl2IHN0 eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250 U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7 IGNvbG9yOiByZ2IoMCwgMCwgMCk7IiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiPgpIZXJlJ3MgbXkg dGVzdCBzY3JpcHQ6PC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3Nf RW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNh bnMtc2VyaWY7IGZvbnQtc2l6ZTogMTFwdDsgY29sb3I6IHJnYigwLCAwLCAwKTsiIGNsYXNzPSJl bGVtZW50VG9Qcm9vZiI+Cjxicj4KPC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRv cywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2 ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTFwdDsgY29sb3I6IHJnYigwLCAwLCAwKTsi IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiI+CiMgc2NobmlwcDwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250 LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwg Q2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiBy Z2IoMCwgMCwgMCk7IiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiPgpkZWNsYXJlIGZ1bmN0aW9uIGxv Y2FsOmh0dHBNb2NrUmVzcG9uc2UoKSB7PC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBB cHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBI ZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTFwdDsgY29sb3I6IHJnYigwLCAwLCAw KTsiIGNsYXNzPSJlbGVtZW50VG9Qcm9vZiI+CiZuYnNwOyAoPC9kaXY+CjxkaXYgc3R5bGU9ImZv bnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNl LCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTFwdDsgY29sb3I6 IHJnYigwLCAwLCAwKTsiIGNsYXNzPSJlbGVtZW50VG9Qcm9vZiI+CiZuYnNwOyAmbmJzcDsgJmx0 O2h0dHA6cmVzcG9uc2Ugc3RhdHVzPSZxdW90OzIwMCZxdW90Oy8mZ3Q7LDwvZGl2Pgo8ZGl2IHN0 eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250 U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7 IGNvbG9yOiByZ2IoMCwgMCwgMCk7IiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiPgombmJzcDsgJm5i c3A7ICZsdDtodG1sJmd0OzwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFw dG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNh LCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IiBjbGFz cz0iZWxlbWVudFRvUHJvb2YiPgombmJzcDsgJm5ic3A7ICZuYnNwOyAmbHQ7Zm9vJmd0O2JhciZs dDsvZm9vJmd0OzwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0Vt YmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5z LXNlcmlmOyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IiBjbGFzcz0iZWxl bWVudFRvUHJvb2YiPgombmJzcDsgJm5ic3A7ICZsdDsvaHRtbCZndDs8L2Rpdj4KPGRpdiBzdHls ZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNl cnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMXB0OyBj b2xvcjogcmdiKDAsIDAsIDApOyIgY2xhc3M9ImVsZW1lbnRUb1Byb29mIj4KJm5ic3A7ICk8L2Rp dj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFw dG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1z aXplOiAxMXB0OyBjb2xvcjogcmdiKDAsIDAsIDApOyIgY2xhc3M9ImVsZW1lbnRUb1Byb29mIj4K fTs8L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZv bnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsg Zm9udC1zaXplOiAxMXB0OyBjb2xvcjogcmdiKDAsIDAsIDApOyIgY2xhc3M9ImVsZW1lbnRUb1By b29mIj4KJmx0O3JlYWwmZ3Q7e2h0dHA6c2VuZC1yZXF1ZXN0KCgpLCZxdW90O2h0dHBzOi8vbmV4 b21hLmRlJnF1b3Q7KVsyXS9odG1sL25hbWUoKX0mbHQ7L3JlYWwmZ3Q7LDwvZGl2Pgo8ZGl2IHN0 eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250 U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7 IGNvbG9yOiByZ2IoMCwgMCwgMCk7IiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiPgombHQ7bW9jayZn dDt7bG9jYWw6aHR0cE1vY2tSZXNwb25zZSgpWzJdL2h0bWwvbmFtZSgpfSZsdDsvbW9jayZndDss PC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250 LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZv bnQtc2l6ZTogMTFwdDsgY29sb3I6IHJnYigwLCAwLCAwKTsiIGNsYXNzPSJlbGVtZW50VG9Qcm9v ZiI+Cjxicj4KPC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1i ZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMt c2VyaWY7IGZvbnQtc2l6ZTogMTFwdDsgY29sb3I6IHJnYigwLCAwLCAwKTsiPgombHQ7bW9jazIm Z3Q7e2xvY2FsOmh0dHBNb2NrUmVzcG9uc2UoKVsyXS9uYW1lKCl9Jmx0Oy9tb2NrMiZndDsgKDog V2h5IG9uZSBsZXZlbCBsb3dlciBoZXJlPyA6KTwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250LWZhbWls eTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJy aSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiByZ2IoMCwg MCwgMCk7IiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiPgojIHNjaG5hcHA8L2Rpdj4KPGRpdiBzdHls ZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNl cnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMXB0OyBj b2xvcjogcmdiKDAsIDAsIDApOyIgY2xhc3M9ImVsZW1lbnRUb1Byb29mIj4KPGJyPgo8L2Rpdj4K PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9z X01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXpl OiAxMXB0OyBjb2xvcjogcmdiKDAsIDAsIDApOyIgY2xhc3M9ImVsZW1lbnRUb1Byb29mIj4KSSBq dXN0IGRvbid0IGdldCBpdC4gOig8L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFwdG9z LCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZl dGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMXB0OyBjb2xvcjogcmdiKDAsIDAsIDApOyIg Y2xhc3M9ImVsZW1lbnRUb1Byb29mIj4KPGJyPgo8L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1p bHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGli cmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMXB0OyBjb2xvcjogcmdiKDAs IDAsIDApOyI+CkJlc3QgcmVnYXJkczwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXB0 b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVs dmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDExcHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7 IiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiPgpBbmRyZWFzPC9kaXY+CjwvYm9keT4KPC9odG1sPgo= --===============7205621964991119004==-- From bunce.andy@gmail.com Mon Mar 16 14:35:12 2026 From: Andy Bunce To: basex-talk@mailman.uni-konstanz.de Subject: [basex-talk] Re: How can I mock a http response correctly Date: Mon, 16 Mar 2026 14:34:22 +0000 Message-ID: In-Reply-To: =?utf-8?q?=3CFRVP281MB58486FBF9DACA36D012B0C929A45A=40FRVP281MB?= =?utf-8?q?5848=2EDEUP281=2EPROD=2EOUTLOOK=2ECOM=3E?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7428493725617421986==" --===============7428493725617421986== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hi Andreas, > Why one level lower here? That level difference is often the difference between a root node and an enclosing document-node. The send-request()[2] is returning a document-node. You can mock the same as below. /Andy declare function local:httpMockResponse() { , * document{* bar } }; On Fri, 13 Mar 2026 at 11:31, Andreas Hengsbach | nexoma via BaseX-Talk < basex-talk@mailman.uni-konstanz.de> wrote: > Hello everybody, > > I'm currently trying to mock the HTTP client's response for unit tests. > In both cases, I have a sequence, but I need to handle them differently. > > Why is that, and how can I correctly mock a response so that it behaves > exactly like the real response? > > Here's my test script: > > # schnipp > declare function local:httpMockResponse() { > ( > , > > bar > > ) > }; > {http:send-request((),"https://nexoma.de")[2]/html/name()}, > {local:httpMockResponse()[2]/html/name()}, > > {local:httpMockResponse()[2]/name()} (: Why one level lower > here? :) > # schnapp > > I just don't get it. :( > > Best regards > Andreas > --===============7428493725617421986== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+PGRpdj5IacKgQW5kcmVhcyw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2 PiZndDsKV2h5IG9uZSBsZXZlbCBsb3dlciBoZXJlPzwvZGl2PjxkaXY+VGhhdCBsZXZlbCBkaWZm ZXJlbmNlIGlzIG9mdGVuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSByb290IG5vZGUgYW5kIGFu IGVuY2xvc2luZyBkb2N1bWVudC1ub2RlLjwvZGl2PjxkaXY+VGhlIHNlbmQtcmVxdWVzdCgpWzJd IGlzIHJldHVybmluZyBhIGRvY3VtZW50LW5vZGUuIFlvdSBjYW4gbW9jayB0aGUgc2FtZSBhcyBi ZWxvdy48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pi9BbmR5PC9kaXY+PGRpdj48YnI+PC9kaXY+ PGRpdj5kZWNsYXJlIGZ1bmN0aW9uIGxvY2FsOmh0dHBNb2NrUmVzcG9uc2UoKTwvZGl2PjxkaXY+ ezxicj7CoCDCoCAmbHQ7aHR0cDpyZXNwb25zZSBzdGF0dXM9JnF1b3Q7MjAwJnF1b3Q7LyZndDss PC9kaXY+PGRpdj48YnI+wqAgPGI+wqAgZG9jdW1lbnR7PC9iPjwvZGl2PjxkaXY+wqAgwqAgwqAg Jmx0O2h0bWwmZ3Q7PGJyPsKgIMKgIMKgICZsdDtmb28mZ3Q7YmFyJmx0Oy9mb28mZ3Q7PGJyPsKg IMKgICZsdDsvaHRtbCZndDs8L2Rpdj48ZGl2PsKgIMKgfTxicj59OzwvZGl2Pjxicj48L2Rpdj48 YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUgZ21haWxfcXVvdGVfY29udGFpbmVyIj48ZGl2IGRp cj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+T24gRnJpLCAxMyBNYXIgMjAyNiBhdCAxMTozMSwg QW5kcmVhcyBIZW5nc2JhY2ggfCBuZXhvbWEgdmlhIEJhc2VYLVRhbGsgJmx0OzxhIGhyZWY9Im1h aWx0bzpiYXNleC10YWxrQG1haWxtYW4udW5pLWtvbnN0YW56LmRlIj5iYXNleC10YWxrQG1haWxt YW4udW5pLWtvbnN0YW56LmRlPC9hPiZndDsgd3JvdGU6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNs YXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXIt bGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGNs YXNzPSJtc2ctNzczMTY4MDk0NTQzODQ1NzMwIj4KCgoKCjxkaXYgZGlyPSJsdHIiPgo8ZGl2IHN0 eWxlPSJmb250LWZhbWlseTpBcHRvcyxBcHRvc19FbWJlZGRlZEZvbnQsQXB0b3NfTVNGb250U2Vy dmljZSxDYWxpYnJpLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMXB0O2NvbG9yOnJn YigwLDAsMCkiPgpIZWxsbyBldmVyeWJvZHksPC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5 OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxBcHRvc19NU0ZvbnRTZXJ2aWNlLENhbGlicmksSGVs dmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjExcHQ7Y29sb3I6cmdiKDAsMCwwKSI+Cjxicj4K PC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxB cHRvc19NU0ZvbnRTZXJ2aWNlLENhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXpl OjExcHQ7Y29sb3I6cmdiKDAsMCwwKSI+CkkmIzM5O20gY3VycmVudGx5IHRyeWluZyB0byBtb2Nr IHRoZSBIVFRQIGNsaWVudCYjMzk7cyByZXNwb25zZSBmb3IgdW5pdCB0ZXN0cy48L2Rpdj4KPGRp diBzdHlsZT0iZm9udC1mYW1pbHk6QXB0b3MsQXB0b3NfRW1iZWRkZWRGb250LEFwdG9zX01TRm9u dFNlcnZpY2UsQ2FsaWJyaSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTFwdDtjb2xv cjpyZ2IoMCwwLDApIj4KSW4gYm90aCBjYXNlcywgSSBoYXZlIGEgc2VxdWVuY2UsIGJ1dCBJIG5l ZWQgdG8gaGFuZGxlIHRoZW0gZGlmZmVyZW50bHkuPC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFt aWx5OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxBcHRvc19NU0ZvbnRTZXJ2aWNlLENhbGlicmks SGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjExcHQ7Y29sb3I6cmdiKDAsMCwwKSI+Cjxi cj4KPC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9u dCxBcHRvc19NU0ZvbnRTZXJ2aWNlLENhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1z aXplOjExcHQ7Y29sb3I6cmdiKDAsMCwwKSI+CldoeSBpcyB0aGF0LCBhbmQgaG93IGNhbiBJIGNv cnJlY3RseSBtb2NrIGEgcmVzcG9uc2Ugc28gdGhhdCBpdCBiZWhhdmVzIGV4YWN0bHkgbGlrZSB0 aGUgcmVhbCByZXNwb25zZT88L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6QXB0b3MsQXB0 b3NfRW1iZWRkZWRGb250LEFwdG9zX01TRm9udFNlcnZpY2UsQ2FsaWJyaSxIZWx2ZXRpY2Esc2Fu cy1zZXJpZjtmb250LXNpemU6MTFwdDtjb2xvcjpyZ2IoMCwwLDApIj4KPGJyPgo8L2Rpdj4KPGRp diBzdHlsZT0iZm9udC1mYW1pbHk6QXB0b3MsQXB0b3NfRW1iZWRkZWRGb250LEFwdG9zX01TRm9u dFNlcnZpY2UsQ2FsaWJyaSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTFwdDtjb2xv cjpyZ2IoMCwwLDApIj4KSGVyZSYjMzk7cyBteSB0ZXN0IHNjcmlwdDo8L2Rpdj4KPGRpdiBzdHls ZT0iZm9udC1mYW1pbHk6QXB0b3MsQXB0b3NfRW1iZWRkZWRGb250LEFwdG9zX01TRm9udFNlcnZp Y2UsQ2FsaWJyaSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTFwdDtjb2xvcjpyZ2Io MCwwLDApIj4KPGJyPgo8L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6QXB0b3MsQXB0b3Nf RW1iZWRkZWRGb250LEFwdG9zX01TRm9udFNlcnZpY2UsQ2FsaWJyaSxIZWx2ZXRpY2Esc2Fucy1z ZXJpZjtmb250LXNpemU6MTFwdDtjb2xvcjpyZ2IoMCwwLDApIj4KIyBzY2huaXBwPC9kaXY+Cjxk aXYgc3R5bGU9ImZvbnQtZmFtaWx5OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxBcHRvc19NU0Zv bnRTZXJ2aWNlLENhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjExcHQ7Y29s b3I6cmdiKDAsMCwwKSI+CmRlY2xhcmUgZnVuY3Rpb24gbG9jYWw6aHR0cE1vY2tSZXNwb25zZSgp IHs8L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6QXB0b3MsQXB0b3NfRW1iZWRkZWRGb250 LEFwdG9zX01TRm9udFNlcnZpY2UsQ2FsaWJyaSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNp emU6MTFwdDtjb2xvcjpyZ2IoMCwwLDApIj4KwqAgKDwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250LWZh bWlseTpBcHRvcyxBcHRvc19FbWJlZGRlZEZvbnQsQXB0b3NfTVNGb250U2VydmljZSxDYWxpYnJp LEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMXB0O2NvbG9yOnJnYigwLDAsMCkiPgrC oCDCoCAmbHQ7aHR0cDpyZXNwb25zZSBzdGF0dXM9JnF1b3Q7MjAwJnF1b3Q7LyZndDssPC9kaXY+ CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxBcHRvc19N U0ZvbnRTZXJ2aWNlLENhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjExcHQ7 Y29sb3I6cmdiKDAsMCwwKSI+CsKgIMKgICZsdDtodG1sJmd0OzwvZGl2Pgo8ZGl2IHN0eWxlPSJm b250LWZhbWlseTpBcHRvcyxBcHRvc19FbWJlZGRlZEZvbnQsQXB0b3NfTVNGb250U2VydmljZSxD YWxpYnJpLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMXB0O2NvbG9yOnJnYigwLDAs MCkiPgrCoCDCoCDCoCAmbHQ7Zm9vJmd0O2JhciZsdDsvZm9vJmd0OzwvZGl2Pgo8ZGl2IHN0eWxl PSJmb250LWZhbWlseTpBcHRvcyxBcHRvc19FbWJlZGRlZEZvbnQsQXB0b3NfTVNGb250U2Vydmlj ZSxDYWxpYnJpLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMXB0O2NvbG9yOnJnYigw LDAsMCkiPgrCoCDCoCAmbHQ7L2h0bWwmZ3Q7PC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5 OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxBcHRvc19NU0ZvbnRTZXJ2aWNlLENhbGlicmksSGVs dmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjExcHQ7Y29sb3I6cmdiKDAsMCwwKSI+CsKgICk8 L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6QXB0b3MsQXB0b3NfRW1iZWRkZWRGb250LEFw dG9zX01TRm9udFNlcnZpY2UsQ2FsaWJyaSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6 MTFwdDtjb2xvcjpyZ2IoMCwwLDApIj4KfTs8L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6 QXB0b3MsQXB0b3NfRW1iZWRkZWRGb250LEFwdG9zX01TRm9udFNlcnZpY2UsQ2FsaWJyaSxIZWx2 ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTFwdDtjb2xvcjpyZ2IoMCwwLDApIj4KJmx0O3Jl YWwmZ3Q7e2h0dHA6c2VuZC1yZXF1ZXN0KCgpLCZxdW90OzxhIGhyZWY9Imh0dHBzOi8vbmV4b21h LmRlIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9uZXhvbWEuZGU8L2E+JnF1b3Q7KVsyXS9odG1s L25hbWUoKX0mbHQ7L3JlYWwmZ3Q7LDwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpBcHRv cyxBcHRvc19FbWJlZGRlZEZvbnQsQXB0b3NfTVNGb250U2VydmljZSxDYWxpYnJpLEhlbHZldGlj YSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMXB0O2NvbG9yOnJnYigwLDAsMCkiPgombHQ7bW9jayZn dDt7bG9jYWw6aHR0cE1vY2tSZXNwb25zZSgpWzJdL2h0bWwvbmFtZSgpfSZsdDsvbW9jayZndDss PC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxB cHRvc19NU0ZvbnRTZXJ2aWNlLENhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXpl OjExcHQ7Y29sb3I6cmdiKDAsMCwwKSI+Cjxicj4KPC9kaXY+CjxkaXYgc3R5bGU9ImZvbnQtZmFt aWx5OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxBcHRvc19NU0ZvbnRTZXJ2aWNlLENhbGlicmks SGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjExcHQ7Y29sb3I6cmdiKDAsMCwwKSI+CiZs dDttb2NrMiZndDt7bG9jYWw6aHR0cE1vY2tSZXNwb25zZSgpWzJdL25hbWUoKX0mbHQ7L21vY2sy Jmd0OyAoOiBXaHkgb25lIGxldmVsIGxvd2VyIGhlcmU/IDopPC9kaXY+CjxkaXYgc3R5bGU9ImZv bnQtZmFtaWx5OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxBcHRvc19NU0ZvbnRTZXJ2aWNlLENh bGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjExcHQ7Y29sb3I6cmdiKDAsMCww KSI+CiMgc2NobmFwcDwvZGl2Pgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpBcHRvcyxBcHRvc19F bWJlZGRlZEZvbnQsQXB0b3NfTVNGb250U2VydmljZSxDYWxpYnJpLEhlbHZldGljYSxzYW5zLXNl cmlmO2ZvbnQtc2l6ZToxMXB0O2NvbG9yOnJnYigwLDAsMCkiPgo8YnI+CjwvZGl2Pgo8ZGl2IHN0 eWxlPSJmb250LWZhbWlseTpBcHRvcyxBcHRvc19FbWJlZGRlZEZvbnQsQXB0b3NfTVNGb250U2Vy dmljZSxDYWxpYnJpLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMXB0O2NvbG9yOnJn YigwLDAsMCkiPgpJIGp1c3QgZG9uJiMzOTt0IGdldCBpdC4gOig8L2Rpdj4KPGRpdiBzdHlsZT0i Zm9udC1mYW1pbHk6QXB0b3MsQXB0b3NfRW1iZWRkZWRGb250LEFwdG9zX01TRm9udFNlcnZpY2Us Q2FsaWJyaSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTFwdDtjb2xvcjpyZ2IoMCww LDApIj4KPGJyPgo8L2Rpdj4KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6QXB0b3MsQXB0b3NfRW1i ZWRkZWRGb250LEFwdG9zX01TRm9udFNlcnZpY2UsQ2FsaWJyaSxIZWx2ZXRpY2Esc2Fucy1zZXJp Zjtmb250LXNpemU6MTFwdDtjb2xvcjpyZ2IoMCwwLDApIj4KQmVzdCByZWdhcmRzPC9kaXY+Cjxk aXYgc3R5bGU9ImZvbnQtZmFtaWx5OkFwdG9zLEFwdG9zX0VtYmVkZGVkRm9udCxBcHRvc19NU0Zv bnRTZXJ2aWNlLENhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjExcHQ7Y29s b3I6cmdiKDAsMCwwKSI+CkFuZHJlYXM8L2Rpdj4KPC9kaXY+Cgo8L2Rpdj48L2Jsb2NrcXVvdGU+ PC9kaXY+Cg== --===============7428493725617421986==-- From andreas.hengsbach@nexoma.com Tue Mar 17 08:48:49 2026 From: Andreas Hengsbach To: basex-talk@mailman.uni-konstanz.de Subject: [basex-talk] Re: How can I mock a http response correctly Date: Tue, 17 Mar 2026 08:48:45 +0000 Message-ID: <177373732584.1453.5725608785900775802@mailman-app-prod.kim.uni-konstanz.de> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2434589983542340560==" --===============2434589983542340560== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Andy, That was the key clue. =F0=9F=91=8D=20 My colleague just found it in the specs as well: https://expath.org/spec/http= -client#d2e517 Thanks for your help. Best regards, Andreas --===============2434589983542340560==--