⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 url.cpp

📁 基于Perl的HTTP协议GUI测试程序
💻 CPP
字号:
#include "url.h"
#include <string.h>
#include <stdlib.h>



// ---------------- CUrl ----------------

CUrl::CUrl()
{
    host = NULL;
    port = 80;
    path = NULL;
}

CUrl::~CUrl()
{
    delete [] host;
    delete [] path;
}

int CUrl::parse(const char* url)
{
    const char* p = url;
    const char* p2;
    const char* p3;
    const char* p4;
    delete [] host;
    delete [] path;
    if(strnicmp(url, "http://", 7) == 0)
        p += 7;


    p3 = strchr(p, ':');
    p2 = strchr(p, '/');
    p4 = p2;

    if(p3)
    {
	p4 = p3;
	port = atoi(++p3);
    }

    if(p4)
    {
        host = new char[p4 - p + 1];
        strncpy(host, p, p4 - p);
        host[p4-p] = 0;
    }
    else
    {
        host = new char[strlen(p) + 1];
        strcpy(host, p);
    }

    if(p2)
    {
        path = new char[strlen(p2) + 1];
        strcpy(path, p2);
    }
    else
    {
        path = new char[2];
        strcpy(path, "/");
    }

    return get_address(host, port, &addr);
}

CUrl& CUrl::operator=(const CUrl& r)
{
    delete [] host;
    delete [] path;
    host = new char[strlen(r.host) + 1];
    strcpy(host, r.host);
    port = r.port;
    path = new char[strlen(r.path) + 1];
    strcpy(path, r.path);
    addr = r.addr;
    return *this;
}

/** Changes the path part of the url */
void CUrl::setPath(const char* newpath)
{
    delete [] path;
    path = new char[strlen(newpath) + 1];
    strcpy(path, newpath);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -