کتابخانه‌ی استاندارد · شبکه

اچ تی تی پی ساده شبکه net/httpx

فرستادن درخواست HTTP خام با سرآیندهای دستی و گرفتن پاسخ متنی یا دودویی.

واردسازی شبکه.اچ تی تی پی ساده شبکه
در این صفحه
  1. گونه‌ها
  2. روال‌ها

این بسته لایه‌ای نازک زیر اچ تی تی پی است: خط درخواست و سرآیندها را خودتان می‌نویسید و پاسخ را دست‌نخورده می‌گیرید. برای کارخواه‌های API که کنترل کامل بر سرآیندها می‌خواهند، مثل بسته‌های سرویس‌های ابری، به کار می‌رود.

گونه‌ها

پاسخ Response

ساختار پاسخ
پاسخ HTTP.
نامانگلیسیگونهتوضیح
statusstatusصحیح = 0کد وضعیت.
headheadرشته = ""سرآیندهای پاسخ، دست‌نخورده.
bodybodyرشته = ""بدنه.
okokمنطقی = نادرستدرخواست فرستاده و پاسخ خوانده شد.
errorerrorرشته = ""پیام خطا.
net-httpx-Send.salam
واردسازی شبکه.اچ تی تی پی ساده شبکه
واردسازی شبکه.تی سی پی شبکه
واردسازی حافظه

ناپایا سرور := تی سی پی شبکه.سرور {}

روال پاسخ‌گو():
    تکرار ۲:
        ا := تی سی پی شبکه.پذیرش(سرور)
        _ := تی سی پی شبکه.خواندن(ا، ۴۰۹۶)
        تی سی پی شبکه.نوشتن اچ تی تی پی(ا، "200 OK"، "text/plain"، "سلام از سرور")
        تی سی پی شبکه.بستن(ا)
    پایان
پایان

روال ریشه:
    ن := اچ تی تی پی ساده شبکه.تجزیه نقطه پایانی("https://api.example.com:8443")
    سرچاپ ن.ok، ن.host، ن.port، ن.secure
    سرور = تی سی پی شبکه.پیوند(۰)
    ک := spawn(پاسخ‌گو)
    محلی := اچ تی تی پی ساده شبکه.تجزیه نقطه پایانی("http://127.0.0.1:" + تی سی پی شبکه.درگاه(سرور))
    سر := "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n"
    پ := اچ تی تی پی ساده شبکه.ارسال متن(محلی، سر، "")
    سرچاپ پ.ok، پ.status، پ.body، "[" + پ.error + "]"
    سرچاپ اچ تی تی پی ساده شبکه.مقدار سرصفحه(پ.head، "content-type")
    ناپایا خ := اچ تی تی پی ساده شبکه.ارسال خام با مهلت(محلی، سر، پوچ، ۰، ۲۰۰۰)
    سرچاپ خ.ok، خ.status، خ.len، اچ تی تی پی ساده شبکه.متن پاسخ خام(خ)
    اچ تی تی پی ساده شبکه.آزادسازی پاسخ خام(خ)
    join(ک)
    تی سی پی شبکه.بستن سرور(سرور)
    سرچاپ اچ تی تی پی ساده شبکه.سقف پاسخ خام() > ۰
    اچ تی تی پی ساده شبکه.تنظیم سقف پاسخ خام(۱۰۲۴ * ۱۰۲۴)
    سرچاپ اچ تی تی پی ساده شبکه.سقف پاسخ خام()
    ناپایا طول := ۰
    ب := اچ تی تی پی ساده شبکه.رونوشت بیرونی("abc"، طول)
    سرچاپ طول
    حافظه.آزادسازی(ب)
    ب۲ := اچ تی تی پی ساده شبکه.ارسال(محلی، سر، پوچ، ۰)
    خ۲ := اچ تی تی پی ساده شبکه.ارسال خام(محلی، سر، پوچ، ۰)
    سرچاپ ب۲.ok، خ۲.ok
پایان
خروجیtrue api.example.com 8443 true true 200 سلام از سرور [] text/plain true 200 22 سلام از سرور true 1048576 3 false false

نقطه پایانی Endpoint

ساختار نقطه پایانی
نشانی یک سرور: میزبان، درگاه و امن بودن.
نامانگلیسیگونهتوضیح
hosthostرشته = ""میزبان.
portportصحیح = 443درگاه؛ پیش‌فرض ۴۴۳.
securesecureمنطقی = درستبا TLS وصل شود.
okokمنطقی = نادرستنشانی درست خوانده شد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

پاسخ خام Raw

ساختار پاسخ خام
پاسخ با بدنه‌ی دودویی.
نامانگلیسیگونهتوضیح
statusstatusصحیح = 0کد وضعیت.
headheadرشته = ""سرآیندها.
datadataتهی*نشانی بدنه.
lenlenصحیح = 0طول بدنه.
okokمنطقی = نادرستموفق بود.
errorerrorرشته = ""پیام خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

روال‌ها

تجزیه نقطه پایانی ParseEndpoint

روال تجزیه نقطه پایانی(endpoint: رشته): نقطه پایانی
نشانی‌ای مثل https://api.example.com:8443 را می‌خواند؛ درگاه پیش‌فرض برای http ۸۰ و برای https ۴۴۳ است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

ارسال Send

روال ارسال(ep: نقطه پایانی، head: رشته، body: تهی*، n: صحیح): پاسخ
درخواست را، با سرآیندهایی که خودتان نوشته‌اید و بدنه‌ی داده‌شده، می‌فرستد و پاسخ را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

ارسال متن SendText

روال ارسال متن(ep: نقطه پایانی، head: رشته، body: رشته): پاسخ
مثل ارسال، با بدنه‌ی متنی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

مقدار سرصفحه HeaderValue

روال مقدار سرصفحه(head: رشته، name: رشته): رشته
مقدار یک سرآیند در متن سرآیندها؛ نام بدون توجه به کوچکی و بزرگی حروف.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

رونوشت بیرونی CopyOut

روال رونوشت بیرونی(body: رشته، out_len &: صحیح): تهی*
رشته را در حافظه‌ی تازه رونوشت می‌کند و طولش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

ارسال خام SendRaw

روال ارسال خام(ep: نقطه پایانی، head: رشته، body: تهی*، n: صحیح): پاسخ خام
مثل ارسال، ولی بدنه‌ی پاسخ را دودویی نگه می‌دارد؛ برای تصویر و پرونده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

ارسال خام با مهلت SendRawTimeout

روال ارسال خام با مهلت(ep: نقطه پایانی، head: رشته، body: تهی*، n: صحیح، timeout_ms: صحیح): پاسخ خام
مثل روال بالا، با مهلت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

آزادسازی پاسخ خام FreeRaw

روال آزادسازی پاسخ خام(r &: پاسخ خام)
حافظه‌ی پاسخ خام را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

متن پاسخ خام RawText

روال متن پاسخ خام(r: پاسخ خام): رشته
بدنه‌ی پاسخ خام به شکل رشته.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

سقف پاسخ خام RawLimit

روال سقف پاسخ خام(): صحیح
بیشترین اندازه‌ی بدنه‌ای که خوانده می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam

تنظیم سقف پاسخ خام SetRawLimit

روال تنظیم سقف پاسخ خام(bytes: صحیح)
این سقف را تغییر می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-httpx-Send.salam