From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: wolf Newsgroups: gmane.lisp.guile.user Subject: Re: extract headers from response record Date: Thu, 10 Aug 2023 00:23:21 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="h/YDphpZwaAP5SQL" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2818"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-user@gnu.org To: Mortimer Cladwell Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Thu Aug 10 00:24:07 2023 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qTrb4-0000Xq-EC for guile-user@m.gmane-mx.org; Thu, 10 Aug 2023 00:24:06 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTraW-0003XS-Gk; Wed, 09 Aug 2023 18:23:32 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qTraU-0003XF-BK for guile-user@gnu.org; Wed, 09 Aug 2023 18:23:30 -0400 Original-Received: from wolfsden.cz ([37.205.8.62]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qTraS-0004YN-5L for guile-user@gnu.org; Wed, 09 Aug 2023 18:23:30 -0400 Original-Received: by wolfsden.cz (Postfix, from userid 104) id 3812226C0FD; Wed, 9 Aug 2023 22:23:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1691619803; bh=oE/S7/uS7NiEn/RfJpm4HG4hvaAbZyH2TrTHWB3yJqQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=stSCN5u7VdXVh0MjKQnN8L37XhJvUb8yLKbtK73+jAzUeN6I2rtt8Oq/mDKTSSF5C Qyfd4XK3QHPVqRWyTE60eBCm2GfwjJVyiId2dtu9CHhDGJ0MTsQrQLzGkWtAlAFFso Df7spSbZLWyxLfTmAQhaLBc6LqnbuAjkjxoSz0MG/w0Ki1fpSjqdBqr2HIi03TImf3 9Cao426H4IFaI2AqzwiJpzcq3f8zxracDWDKBuSyTBp27QLISHYcB8Un+yjTcrw0m4 01kjhiIDtV64INnYnrr9/g1PlxGQQjbkQtwyhpzanhpqDdu6UucS6CSeOK2TonJ79/ +Pn/dgAMAB82TxHacds1bfOEQ56kLGxfapIwUS8Cf45XPkEj/xYa23ql+keVpXVa5C SZtoPmgeGzQ7Xn3JpZD8lhtBQbezqkMrDHuBaevCdzp5GiYGt+VEtXYsVTQ/5A1NqT 63prbMPVOPzuhED0q+hswJ7EFJYENJ+13PsZM/wF5crKtgfA3wmqMaKiY9uI0nqtVX IXnde6weSql9p2WUAX5wvQbfIeDogJamZ8OoOAyLmMDpe0npcTN6esw2OXfYgueIpx 15K8WPmNNeVj2w62rQt+aLFzfJfiCiDA92aWK/gUrxs5cP35otRAcYChJe20IxDVPf XW3IOWKeMUnPYPa0ShquiCxc= Original-Received: from localhost (unknown [128.0.188.242]) by wolfsden.cz (Postfix) with ESMTPSA id 3D31626CC5E; Wed, 9 Aug 2023 22:23:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1691619802; bh=oE/S7/uS7NiEn/RfJpm4HG4hvaAbZyH2TrTHWB3yJqQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=q+GibDLVx/5SM+bUI7MYTi0X79PnBLnfsmglpnl8VxODIN0t83pwdZE6oXmw5PFl3 KQbxULzanLmksdZmJYE0L4Gc6X2Kgeqk0wUYjyX3mBh9kchQcxx8zx5OO2njphUd/s lwDQE2E6OsXURgTJ7pOBsExDMSCzZimR6JfPQQSu0cQ799T+wipVS9kmvH/b+ExsPl fo06BevIOyhzLGTenlxhMYW7O9MEWpSDtRjUstJwkfMKTAvjOzHuRCYMflETGaIkTL /zJu8P2PPSXfs8+qD0SE/QD34mS8S8sHyvO7NP8tBnikw9+I9XVLQu1clNs28S67q9 xucL9rUGthuiyOi27Ff6EALMVN828LeJ1iwZ4dmwok3KZkfWPceg0LQ+xQI30uTd6G WTvHWcs/6eIfC+IR5nwlkPR3MhL+oC2DN8Q6xQEP/XIdeYqba4xbkxgMI7XfzpSKIl A+3/PDaved7yCX0nVv4cjJ6KhOnqMUTtVXLTj16Uq7b40w9BqhZzw7syJIy5/gcy0p FxXCKUjudQjlcnttmMz9UPQxPcqI7VpemMOZ42I3A+KBCyLtaGHM6iMfjkhg1gxjiZ Ty+XF2qV64DbpnaSxchGK7QkZPcqJjUK9tR0PMSbhg02ve+M7o2GbZ9Hs5lg3imzu+ qDfiyMyXVcRN4kbonZwFFHkM= Original-Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id a40da4d8; Wed, 9 Aug 2023 22:23:21 +0000 (UTC) Mail-Followup-To: Mortimer Cladwell , guile-user@gnu.org Content-Disposition: inline In-Reply-To: Received-SPF: none client-ip=37.205.8.62; envelope-from=ws@wolfsnet.cz; helo=wolfsden.cz X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_PASS=-0.001, SPF_NONE=0.001, UNPARSEABLE_RELAY=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.user:19139 Archived-At: --h/YDphpZwaAP5SQL Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 2023-08-09 10:18:05 -0400, Mortimer Cladwell wrote: > Hi, > I am running a local fake Urbit zod on port 8080. I want to submit an > http-request and obtain an urbauth id cookie. I run the following method: >=20 > (use-modules (web client)(web response) (srfi srfi-9)(oop goops) (ice-9 > receive) (ice-9 pretty-print)) >=20 > (define (urbit-http-connect) > (let* ((uri "http://localhost:8080/~/login") > (data (string-append "password=3D" "lidlut-tabwed-pillex-ridrup"= )) > (a (receive (response body) > (http-request uri #:method 'POST #:body data) > response))) > (pretty-print a))) >=20 > =3D=3D> #< version: (1 . 1) code: 204 reason-phrase: "ok" heade= rs: > ((date . # 8 year: 2023 zone-offset: 0>) (connection close) (server . > "urbit/vere-2.11") (set-cookie . > "urbauth-~zod=3D0v7.126dd.8rbvk.lga05.jvieb.287to; Path=3D/; Max-Age=3D60= 4800")) > port: #> >=20 > Below I substitute (pretty-print a) with various commands and show the > response: >=20 > (pretty-print (class-of a)) =3D=3D> #< <> 7f721fc4c280> > (pretty-print (record? a)) =3D=3D> #t > (pretty-print (response? a)) =3D=3D> #f >=20 > (pretty-print (response-headers a)) =3D=3D> In procedure response-header= s: > Wrong type argument: #< version: (1 . 1) code: 204 reason-phras= e: > "ok" headers: ((date . # day: 9 month: 8 year: 2023 zone-offset: 0>) (connection close) (server . > "urbit/vere-2.11") (set-cookie . > "urbauth-~zod=3D0v5.9pm4c.pa0qd.00hao.vsq1p.h37hh; Path=3D/; Max-Age=3D60= 4800")) > port: #> >=20 > So I have a record that looks like a record but isn't. How do I > extract the headers from this 'response'? > How do I determine the record type? You are using the (receive) in a wrong way I believe. The value you named = body holds the, well, body, but you are just throwing it away. Try something li= ke this, it will print both the response and the body: (use-modules (ice-9 receive) (web client)) (define (urbit-http-connect) (let* ((uri "http://example.org") (data (string-append "password=3D" "lidlut-tabwed-pillex-ridrup"))) (receive (response body) (http-request uri #:method 'POST #:body data) (format #t "~s~%~s~%" response body)))) (urbit-http-connect) > Thanks > Mortimer W. --=20 There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors. --h/YDphpZwaAP5SQL Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmTUEdkACgkQL7/ufbZ/ wamsAxAAjqQftpr//rHeTD9sUzj18XxKj/XspoqN2YgwhP6THvyCKMXH5meZkgVG 1vbUNPOzy3b3O4Px0JDz74ktJEDKuJ8Rzrg0HH+i8SJhkerEKz7llKk2HpjtmbkZ +xN8pZFAZmB5hC4wGVW9qs8IyLcGApW48TmcOm06RxzIdLHOuDYq81lH0gC56PX7 Vpt8rfzRKlqz4rMcgjhOQdp16s9nxjK9wo8Awgb14R6ACOwEKLNdKJhLWYDLnvTY jdjcWVP/XbWabpJULdcv3o3sxzmgk9H3q4vRUZo1Y1R/xAXOf21ycjXJwPcaSNCB Yg3r1+iagkNik6ME3vhfo+lI0QxuuS4kGiN8kVDvh6fRuH9VqWFAz0WVCI6WSkof 23PJqanwTsIaM/HfTF+5U8KGFRCxEJoldrHeEHM7RI10ICnrSko9vHIgE8eAGFOt YZ6lTObiEYIPNEtybip+g4QNfeQDiMZAL4vcA8P/7LrzxfrYUwFf93ZP1O08mKTC c7lnTaFTUkGlmUjxeG6siEgujdod35IXNOB2NCQhluBUvQM/3sH828Bn6LV9rYnq uZMNhqazX9tgk6VMGBCjuZr3veoh51bw9U+ogz6Q5CnMHuAUz7FG9LiDpdC2gJDn qnW70WCzzVWasrL9kMrvZALPZgUhibAGAZmVYMeKfPWsazXbg3A= =cogU -----END PGP SIGNATURE----- --h/YDphpZwaAP5SQL--