zoukankan      html  css  js  c++  java
  • 解析url

    // parse url 解析 url c c++ 代码 rfc 2068

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

    // 解析url,作为示例,很多情况没考虑,比如说user,pass之类的
    int parse_url(char *url, char **serverstrp, int *portp, char **pathstrp)
    {
        char buf[256];
        int serverlen, numread=0;

        // 跳过"http://" ,例"http://www.a.cn"->"www.a.cn"
        url = url+7;

        // 输入url直到遇到'/'和':'符号
        sscanf(url, "%255[^/:]", buf);
        serverlen = strlen(buf);
        *serverstrp = (char *)malloc(serverlen+1);
        strcpy(*serverstrp, buf);
        if(url[serverlen]==':')
        {
            // 获取port
            sscanf(&url[serverlen+1], "%d%n", portp, &numread);
            /* add one to go PAST it */
           
            numread++;
        }
        else
        {
            *portp = 80;
        }
        /* the path is a pointer into the rest of url */
       
        *pathstrp = &url[serverlen+numread];
        return 0;
    }

    int main()
    {
        char url[256] = "http://www.a.cn:80//index.html";
        char pathstr[256] = {'/0'};
        char szserverstrp[256] = {'/0'};
        char* serverstrp = szserverstrp;
        char* pathstrp = &pathstr[0];
        int port;

        parse_url(url,&serverstrp,&port,&pathstrp);
        printf("%s/n%s/n%d/n%s/n",url,serverstrp,port,pathstrp);

        return 0;
    }

  • 相关阅读:
    在泛型方法中返回泛型数组
    java泛型方法返回泛型结果
    hive -e和hive -f的区别(转)
    hive表批处理
    python网络编程——实现简单聊天
    python网络编程(转)
    python分布式编程(转)
    shell多线程之进程间通信(3)
    在xml文件中使用该控件
    Java文件中代码
  • 原文地址:https://www.cnblogs.com/IS2120/p/7643566.html
Copyright © 2011-2022 走看看