Nietzsche's Preposterous Moustache

    @capacitor-community/http
    TypeScript icon, indicating that this package has built-in type declarations

    1.4.1 • Public • Published


    HTTP

    @capacitor-community/http

    Capacitor community plugin for native HTTP requests, file download/uploads, and cookie management.


    Maintainers

    Maintainer GitHub Social
    Max Lynch mlynch @maxlynch
    Thomas Vidas thomasvidas @thomasvidas

    Installation

    npm install @capacitor-community/http
    npx cap sync

    Capacitor 2.x

    For Capacitor 2.x projects, you will need to install a version less than 1.0.0. You can do that by specifying the version in your package.json or installing like this. The latest 2.x compatible version is 0.3.1.

    npm install @capacitor-community/http@0.x

    Configuration

    In most cases no configuration is required for this plugin. If the Android application connects with use the self-signed certificates or without encryption, see Network security configuration article.

    Usage

    To use the plugin while fully supporting the web version, import and use it like this:

    import { Http } from '@capacitor-community/http';
    
    // Example of a GET request
    const doGet = () => {
      const options = {
        url: 'https://example.com/my/api',
        headers: { 'X-Fake-Header': 'Max was here' },
        params: { size: 'XL' },
      };
    
      const response: HttpResponse = await Http.get(options);
    
      // or...
      // const response = await Http.request({ ...options, method: 'GET' })
    };
    
    // Example of a POST request. Note: data
    // can be passed as a raw JS Object (must be JSON serializable)
    const doPost = () => {
      const options = {
        url: 'https://example.com/my/api',
        headers: { 'X-Fake-Header': 'Thomas was here' },
        data: { foo: 'bar', cool: true },
      };
    
      const response: HttpResponse = await Http.post(options);
    
      // or...
      // const response = await Http.request({ ...options, method: 'POST' })
    };
    
    const setCookie = async () => {
      const options = {
        url: 'http://example.com',
        key: 'language',
        value: 'en',
      };
    
      await Http.setCookie(options);
    };
    
    const deleteCookie = async () => {
      const options = {
        url: 'http://example.com',
        key: 'language',
      };
    
      await Http.deleteCookie(options);
    };
    
    const clearCookies = async () => {
      await Http.clearCookies({ url: 'http://example.com' });
    };
    
    const getCookies = async () => {
      const cookies: HttpCookie[] = await Http.getCookies({
        url: 'http://example.com',
      });
    };
    
    const downloadFile = async () => {
      const options = {
        url: 'https://example.com/path/to/download.pdf',
        filePath: 'document.pdf',
        fileDirectory: Directory.Downloads,
        // Optional
        method: 'GET',
      };
    
      // Writes to local filesystem
      const response: HttpDownloadFileResult = await Http.downloadFile(options);
    
      // Then read the file
      if (response.path) {
        const read = await Filesystem.readFile({
          path: 'download.pdf',
          directory: Directory.Downloads,
        });
      }
    };
    
    const uploadFile = async () => {
      const options = {
        url: 'https://example.com/path/to/upload.pdf',
        name: 'myFile',
        filePath: 'document.pdf',
        fileDirectory: FilesystemDirectory.Downloads,
      };
    
      const response: HttpUploadFileResult = await Http.uploadFile();
    };

    API Reference

    You can view the API Reference generated by TypeDoc here: https://capacitor-community.github.io/http/docs/classes/web.httpweb.html

    Third Party Cookies on iOS

    As of iOS 14, you cannot use 3rd party cookies by default. There is an open issue on the Capacitor Core repo on properly patching in cookies on iOS. For now, you must specify a domain of for the cookie you are saving to properly save and send them via requests. You can also add the following lines to your Info.plist file to get better support for cookies on iOS. You can add up to 10 domains.

    <key>WKAppBoundDomains</key>
    <array>
        <string>www.mydomain.com</string>
        <string>api.mydomain.com</string>
        <string>www.myothercooldomain.com</string>
    </array>

    Contributors

    Thanks goes to these wonderful people (emoji key):


    Daniel Sogl

    📖

    Priyank Patel

    💻

    Max Lynch

    💻

    Falk Schieber

    👀

    Andy Sousa

    💻

    Thomas Vidas

    💻 🚧

    Emily Curry

    💻

    graefenhain

    💻

    Lee Houghton

    🐛

    Felix Schwarzmeier

    💻

    Kamil Jakubus

    💻

    Joe Flateau

    🐛

    Frank608

    🐛

    Joel Nieto

    🐛

    ultimate-tester

    💻

    Adrian Sanchez

    🐛

    milanc

    💻

    herecoulbeyourname

    💻

    Landschaft

    💻

    stonewoodman

    🐛

    Héctor Cruz

    🐛

    Patrick Bußmann

    💻

    This project follows the all-contributors specification. Contributions of any kind welcome!

    Install

    npm i @capacitor-community/http

    DownloadsWeekly Downloads

    10,916

    Version

    1.4.1

    License

    MIT

    Unpacked Size

    1.17 MB

    Total Files

    227

    Last publish

    Collaborators

    • tafelnl
    • thegnuu
    • pbowyer
    • capcombot
    • jcesarmobile
    • maxlynch
    • mhartington
    • dotnetkow
    • it_mike_s
    • byrds
    • rdlabo
    • priyankpatel
    • dwieeb
    • stewan
    • arielhernandezmusa
    • jeepq
    • start9keagan
    • boosten
    • nklayman
    • ihadeed
    • danielprr
    • ckgaparajita
    • jpender
    • nhyatt
    • pwespi
    • epicshaggy
    • thomasvidas
    • robingenz
    • diachedelic
    • johnborges
    • tobyas
    • elylucas
    • larsmikkelsen
    • giodimiliaionic
    • brownoxford
    • mrbatista
    • bazuka5801
    • hemang