带有Cookie功能的HTTP访问函数,GET,PUT/POST

2023-11-03

#define AFX_INET_SERVICE_FTP        INTERNET_SERVICE_FTP
#define AFX_INET_SERVICE_HTTP       INTERNET_SERVICE_HTTP
#define AFX_INET_SERVICE_GOPHER     INTERNET_SERVICE_GOPHER
 
#define AFX_INET_SERVICE_UNK        0x1000
#define AFX_INET_SERVICE_FILE       (AFX_INET_SERVICE_UNK+1)
#define AFX_INET_SERVICE_MAILTO     (AFX_INET_SERVICE_UNK+2)
#define AFX_INET_SERVICE_MID        (AFX_INET_SERVICE_UNK+3)
#define AFX_INET_SERVICE_CID        (AFX_INET_SERVICE_UNK+4)
#define AFX_INET_SERVICE_NEWS       (AFX_INET_SERVICE_UNK+5)
#define AFX_INET_SERVICE_NNTP       (AFX_INET_SERVICE_UNK+6)
#define AFX_INET_SERVICE_PROSPERO   (AFX_INET_SERVICE_UNK+7)
#define AFX_INET_SERVICE_TELNET     (AFX_INET_SERVICE_UNK+8)
#define AFX_INET_SERVICE_WAIS       (AFX_INET_SERVICE_UNK+9)
#define AFX_INET_SERVICE_AFS        (AFX_INET_SERVICE_UNK+10)
#define AFX_INET_SERVICE_HTTPS      (AFX_INET_SERVICE_UNK+11)
	// Global Functions
 
	BOOL ParseURLWorker(LPCTSTR pstrURL,
		LPURL_COMPONENTS lpComponents, DWORD& dwServiceType,
		INTERNET_PORT& nPort, DWORD dwFlags)
	{
		// this function will return bogus stuff if lpComponents
		// isn't set up to copy the components
 
		assert(lpComponents != NULL && pstrURL != NULL);
		if (lpComponents == NULL || pstrURL == NULL)
			return FALSE;
		assert(lpComponents->dwHostNameLength == 0 ||
			lpComponents->lpszHostName != NULL);
		assert(lpComponents->dwUrlPathLength == 0 ||
			lpComponents->lpszUrlPath != NULL);
		assert(lpComponents->dwUserNameLength == 0 ||
			lpComponents->lpszUserName != NULL);
		assert(lpComponents->dwPasswordLength == 0 ||
			lpComponents->lpszPassword != NULL);
 
		//ASSERT(AfxIsValidAddress(lpComponents, sizeof(URL_COMPONENTS), TRUE));
 
		LPTSTR pstrCanonicalizedURL;
		TCHAR szCanonicalizedURL[INTERNET_MAX_URL_LENGTH];
		DWORD dwNeededLength = INTERNET_MAX_URL_LENGTH;
		BOOL bRetVal;
		BOOL bMustFree = FALSE;
 
		// Decoding is done in InternetCrackUrl/UrlUnescape 
		// so we don't need the ICU_DECODE flag here.
 
		DWORD dwCanonicalizeFlags = dwFlags &
			(ICU_NO_ENCODE | ICU_NO_META |
			ICU_ENCODE_SPACES_ONLY | ICU_BROWSER_MODE);
 
		DWORD dwCrackFlags = 0;
 
		BOOL bUnescape = FALSE;
 
		if((dwFlags & (ICU_ESCAPE | ICU_DECODE)) && (lpComponents->dwUrlPathLength != 0) )
		{
 
			// We use only the ICU_ESCAPE flag for decoding even if
			// ICU_DECODE is passed.
 
			// Also, if ICU_BROWSER_MODE is passed we do the unescaping
			// manually because InternetCrackUrl doesn't do
			// Browser mode unescaping
 
			if (dwFlags & ICU_BROWSER_MODE)
				bUnescape = TRUE;
			else
				dwCrackFlags |= ICU_ESCAPE;
		}
 
		bRetVal = InternetCanonicalizeUrl(pstrURL, szCanonicalizedURL,
			&dwNeededLength, dwCanonicalizeFlags);
 
		if (!bRetVal)
		{
			if (::GetLastError() != ERROR_INSUFFICIENT_BUFFER)
				return FALSE;
 
			pstrCanonicalizedURL = new TCHAR[dwNeededLength];
			if (pstrCanonicalizedURL == NULL)
				return FALSE;
 
			bMustFree = TRUE;
			bRetVal = InternetCanonicalizeUrl(pstrURL, pstrCanonicalizedURL,
				&dwNeededLength, dwCanonicalizeFlags);
			if (!bRetVal)
			{
				delete [] pstrCanonicalizedURL;
				return FALSE;
			}
		}
		else
			pstrCanonicalizedURL = szCanonicalizedURL;
 
		// now that it's safely canonicalized, crack it
 
		bRetVal = InternetCrackUrl(pstrCanonicalizedURL, 0,
			dwCrackFlags, lpComponents);
 
		if(bUnescape)
		{
			if((UrlUnescape(lpComponents->lpszUrlPath,NULL,NULL,URL_UNESCAPE_INPLACE | URL_DONT_UNESCAPE_EXTRA_INFO)))
			{
				if (bMustFree)
					delete [] pstrCanonicalizedURL;
 
				return FALSE;
			}
 
			lpComponents->dwUrlPathLength = lstrlen(lpComponents->lpszUrlPath);
		}
 
		if (bMustFree)
			delete [] pstrCanonicalizedURL;
 
		// convert to MFC-style service ID
 
		if (!bRetVal)
			dwServiceType = AFX_INET_SERVICE_UNK;
		else
		{
			nPort = lpComponents->nPort;
			switch (lpComponents->nScheme)
			{
			case INTERNET_SCHEME_FTP:
				dwServiceType = AFX_INET_SERVICE_FTP;
				break;
 
			case INTERNET_SCHEME_GOPHER:
				dwServiceType = AFX_INET_SERVICE_GOPHER;
				break;
 
			case INTERNET_SCHEME_HTTP:
				dwServiceType = AFX_INET_SERVICE_HTTP;
				break;
 
			case INTERNET_SCHEME_HTTPS:
				dwServiceType = AFX_INET_SERVICE_HTTPS;
				break;
 
			case INTERNET_SCHEME_FILE:
				dwServiceType = AFX_INET_SERVICE_FILE;
				break;
 
			case INTERNET_SCHEME_NEWS:
				dwServiceType = AFX_INET_SERVICE_NNTP;
				break;
 
			case INTERNET_SCHEME_MAILTO:
				dwServiceType = AFX_INET_SERVICE_MAILTO;
				break;
 
			default:
				dwServiceType = AFX_INET_SERVICE_UNK;
			}
		}
 
		return bRetVal;
	}
 
	BOOL ParseURL(LPCTSTR pstrURL, DWORD& dwServiceType,
		string& strServer, string& strObject, INTERNET_PORT& nPort)
	{
		dwServiceType = AFX_INET_SERVICE_UNK;
 
		assert(pstrURL != NULL);
		if (pstrURL == NULL)
			return FALSE;
 
		URL_COMPONENTS urlComponents;
		memset(&urlComponents, 0, sizeof(URL_COMPONENTS));
		urlComponents.dwStructSize = sizeof(URL_COMPONENTS);
 
		urlComponents.dwHostNameLength = INTERNET_MAX_URL_LENGTH;
		urlComponents.lpszHostName = new char[INTERNET_MAX_URL_LENGTH+1];
		urlComponents.dwUrlPathLength = INTERNET_MAX_URL_LENGTH;
		urlComponents.lpszUrlPath = new char[INTERNET_MAX_URL_LENGTH+1];
 
		BOOL bRetVal = ParseURLWorker(pstrURL, &urlComponents,
			dwServiceType, nPort, ICU_BROWSER_MODE);
 
		strServer = urlComponents.lpszHostName;
		strObject = urlComponents.lpszUrlPath;
		delete urlComponents.lpszHostName;
		delete urlComponents.lpszUrlPath;
		return bRetVal;
	}
 
	BOOL HttpQueryStatusCode(HINTERNET hRequest, DWORD& dwStatusCode)
	{
		CHAR szBuffer[80];
		DWORD dwLen = _countof(szBuffer);
		BOOL bRet;
 
		bRet = HttpQueryInfo(hRequest, HTTP_QUERY_STATUS_CODE,
			szBuffer, &dwLen, NULL);
 
		if (bRet)
			dwStatusCode = (DWORD)atol(szBuffer);
		return bRet;
	}
 
	set<string> dict;
	string cookies;
 
	dict.insert("Max-Age");
	dict.insert("expires");
	dict.insert("domain");
	dict.insert("path");
	dict.insert("secure");
	dict.insert("HttpOnly");
	string HttpGet(LPCTSTR url, const string& queryString)
	{
		string result;
		DWORD dwVersion = GetVersion();
		stringstream agent;
		agent << "Mozilla/4.0 (System " << (int)LOBYTE(LOWORD(dwVersion)) << ".";
		agent << (int)HIBYTE(LOWORD(dwVersion)) << "." << (int)HIWORD(dwVersion) << "; Fyter HTTP Module)";
		stringstream req;
		//req << "Accept: */*/r/n";//Range: bytes=%u-/r/n
		req << "Accept-Language:zh-cn/r/n";
		if( !cookies.empty() )
			req << "Cookie:" + cookies + "/r/n";
		req << "Content-Type:application/x-www-form-urlencoded/r/n/r/n";
 
		string finalURL = url;
		finalURL += queryString;
 
		string host;
		string obj;
		DWORD type;
		INTERNET_PORT port;
 
		if( !ParseURL(finalURL.c_str(), type, host, obj, port) )
			goto close;
 
		HINTERNET hInternet = InternetOpen(agent.str().c_str(),
			INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);
		HINTERNET hSession = InternetConnect(hInternet, host.c_str(), port, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
		LPSTR szAccept[] = {"text/*" , NULL};
 
		HINTERNET hRequest = HttpOpenRequest(hSession, "GET", obj.c_str(),
			NULL, NULL, (LPCSTR*)szAccept, INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_RELOAD, 0);
 
		HttpSendRequest(hRequest, req.str().c_str(), -1, NULL, 0);
 
		LPSTR lpszData; // 数据缓冲
		DWORD dwSize; // 缓冲尺寸
		DWORD dwDownloaded; // 下载的长度
 
		DWORD status = 0;
		if(!HttpQueryStatusCode(hRequest, status))
			goto close;
		if( status < 200 || status >= 300)
			goto close;
 
		char value[1000];
		DWORD valueLen = sizeof(value);
		if(HttpQueryInfo(hRequest, HTTP_QUERY_SET_COOKIE, value, &valueLen, 0))
		{
			stringstream ss(value);
			string sub;
			cookies.clear();
			while(getline(ss,sub,';'))
			{
				stringstream ss2(sub);
				string sub2;
				getline(ss2,sub2,'=');
				sub2.erase(0, sub2.find_first_not_of(" /t/n/r"));
				sub2.erase(sub2.find_last_not_of(" /t/n/r")+1);
				
				if(dict.find(sub2) == dict.end())
				{
					cookies = sub + ";";
				}
			}
		}
		
		// 接收数据循环
		while(1)
		{
			if (!InternetQueryDataAvailable(hRequest,&dwSize,0,0) || dwSize == 0 )
			{
				break;
			}
			else
			{ 
				lpszData = new char[dwSize+1];
 
				if(!InternetReadFile(hRequest,(LPVOID)lpszData,dwSize,&dwDownloaded))
				{
					delete[] lpszData;
					break;
				}
				else
				{
					//lpszData[dwDownloaded]='/0';
					result.insert(result.size() , lpszData, dwDownloaded);
 
					delete[] lpszData;
					if (dwDownloaded == 0)
						break;
				}
			}
		}
 
		close:
		InternetCloseHandle(hRequest);
		InternetCloseHandle(hSession);
		InternetCloseHandle(hInternet);
 
		return result;
	}
 
	string HttpPost(LPCTSTR url, const string& postContent)
	{
		string result;
		DWORD dwVersion = GetVersion();
		stringstream agent;
		agent << "Mozilla/4.0 (System " << (int)LOBYTE(LOWORD(dwVersion)) << ".";
		agent << (int)HIBYTE(LOWORD(dwVersion)) << "." << (int)HIWORD(dwVersion) << "; Fyter HTTP Module)";
		stringstream req;
		req << "Accept-Language:zh-cn/r/n";
		if( !cookies.empty() )
			req << "Cookie:" + cookies + "/r/n";
		req << "Content-Type:application/x-www-form-urlencoded/r/n";
		req << "Content-Length: " << postContent.length() << "/r/n/r/n";
 
		string host;
		string obj;
		DWORD type;
		INTERNET_PORT port;
 
		if( !ParseURL(url, type, host, obj, port) )
			goto close;
 
		HINTERNET hInternet = InternetOpen(agent.str().c_str(), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);
		HINTERNET hSession = InternetConnect(hInternet, host.c_str(), port, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
		char* szAccept[] = {"text/xml" , NULL};
 
		HINTERNET hRequest = HttpOpenRequest(hSession, "POST", obj.c_str(), NULL, NULL, (LPCSTR*)szAccept, 0, 0);
		HttpSendRequest(hRequest, req.str().c_str(), -1, (LPVOID)postContent.c_str(), postContent.length());
		
		LPSTR lpszData; // 数据缓冲
		DWORD dwSize; // 缓冲尺寸
		DWORD dwDownloaded; // 下载的长度
 
		DWORD status = 0;
		if(!HttpQueryStatusCode(hRequest, status))
			goto close;
		if( status < 200 || status >= 300)
			goto close;
 
		char value[1000];
		DWORD valueLen = sizeof(value);
		if(HttpQueryInfo(hRequest, HTTP_QUERY_SET_COOKIE, value, &valueLen, 0))
		{
			stringstream ss(value);
			string sub;
			cookies.clear();
			while(getline(ss,sub,';'))
			{
				stringstream ss2(sub);
				string sub2;
				getline(ss2,sub2,'=');
				sub2.erase(0, sub2.find_first_not_of(" /t/n/r"));
				sub2.erase(sub2.find_last_not_of(" /t/n/r")+1);
				
				if(dict.find(sub2) == dict.end())
				{
					cookies = sub + ";";
				}
			}
		}
 
		// 接收数据循环
		while(1)
		{
			if (!InternetQueryDataAvailable(hRequest,&dwSize,0,0) || dwSize == 0 )
			{
				break;
			}
			else
			{
				lpszData = new char[dwSize+1];
 
				if(!InternetReadFile(hRequest,(LPVOID)lpszData,dwSize,&dwDownloaded))
				{
					delete[] lpszData;
					break;
				}
				else
				{
					result.insert(result.size() , lpszData, dwDownloaded);
delete[] lpszData; if (dwDownloaded == 0) break; } } } close: InternetCloseHandle(hRequest); InternetCloseHandle(hSession); InternetCloseHandle(hInternet); return result; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有Cookie功能的HTTP访问函数,GET,PUT/POST 的相关文章

  • 服务崩溃,事件名称为 [CLR20r3] [重复]

    这个问题在这里已经有答案了 我已经创建了一项服务 Net c 基本上定期发送电子邮件 该服务在我的上运行良好x32 XP机器但是当我部署时x64 build基于另一个 x64 Windows Server 2008 R2机器 服务启动并在几
  • 在重新激活 WiFi/移动网络之前,服务中的 Android 位置侦听器无法工作

    我的位置侦听器工作正常 收集数据没有任何问题 但有时它不收集任何数据 我此时必须关闭并重新启动我的位置提供程序 重新启动可以解决问题 但是 这可能不是用户期望做的最好的事情 当我使用 GPS 作为提供商时 没有问题 位置侦听器在服务中工作
  • Android 2.3 中崩溃服务重启后不会调用 onStartCommand()

    我遇到了 Android 服务重启的问题 我正在针对 API 版本 7 进行构建 并在 Android 2 3 3 的设备上运行 问题是 当我的服务被系统杀死并稍后重新启动时 只有onCreate 我的服务被称为 代码在onStartCom
  • 多个Android IntentService可以同时运行吗?

    据我了解 一个IntentService一次只能处理一个 Intent 因为它共享一个工作线程来完成所有工作 但如果我有多个IntentService在我的应用程序中 它们可以并行运行 还是都共享单个工作线程 但是如果我的应用程序中有多个
  • 使用 powershell 从远程服务器获取服务状态

    如何获取需要用户名和密码登录的远程计算机的服务状态 我正在尝试使用以下代码找到解决方案 serviceStatus get service ComputerName machineName Name service 默认语法为get ser
  • 如何使用Android读取Service中的加速度计数据

    通常 在 Android 中 我们通过重写 OnSensorChanged 函数来读取 Activity 中的加速度计数据 我很好奇我们如何在 服务 中做到这一点 谢谢 文森特 实际上OnSensorChanged SensorEvent
  • 启动时启动服务但不进行任何活动

    我想创建一个仅包含服务 无活动 的应用程序 该服务必须在启动时启动 我的问题是 如果没有活动 启动接收器似乎不会调用 我用下面的例子进行了测试 我有不同的文件 MyReceiver java package com test teststa
  • 本地计算机上的服务启动然后停止,某些服务如果没有被其他服务或程序使用则自动停止

    我创建了一个示例 Windows 服务并成功安装了我的服务 但是在要启动服务时 我收到以下错误 本地计算机上的此服务启动然后停止 如果其他服务或程序未使用某些服务 则会自动停止 我的配置文件代码
  • 有没有办法查看 OSGi 应用程序中注册的服务?

    我有一个运行 Equinox 的 OSGi 应用程序 我想查看该应用程序提供的服务 我怎样才能做到这一点 从 gogo shell 类型 inspect cap service 这将显示所有捆绑包注册的所有服务 如果您想显示特定捆绑包的服务
  • 尝试从 C# 服务查询 IIS 时出现异常

    我从使用 C 编写的 Windows 服务调用以下代码 try ServerManager m new ServerManager if m null SiteCollection sites m Sites I get exception
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • 无法启动 Windows 服务,错误 1064

    我编写了一个在 Win10 上运行的 Windows 服务 它运行得非常好 直到我决定对其进行一些更改 我重写了一些逻辑 在调试和发布配置中进行了测试 一切都很好 然后 我使用卸载了当前版本的服务installutil exe u serv
  • 发送变量后的 wsdl 服务响应,php

    我是 SOAP WSDL 函数的新手 我有一位客户从一家从事汽车测试的公司获得了 wsdl 文件 我的客户是他们的分包商 他们告诉我们上传有关车牌 类别等信息 一旦详细信息发送完毕 服务器就会做出成功或失败的响应 请您协助 浏览不同的信息
  • Google Play 商店中基于服务的 Android 应用程序

    我正在开发一个应用程序 该应用程序仅包含一些服务 没有任何活动 即没有 UI 基本上 当用户在他 她的设备上安装应用程序时 我希望有 2 到 3 个服务在后台运行 对此我有几个疑问 应用程序安装后我的服务将如何启动 我的BroadcastR
  • 需要帮助编写循环任务调度程序

    我需要编写一个工具 它将按照用户可配置的时间表运行重复任务 我将用 C 3 5 编写它 它将在 XP Windows 7 或 Windows Server 2008 上运行 完成任务大约需要 20 分钟 用户可能想要设置多种配置 例如每日
  • 在 Android KitKat 中接收彩信

    所以这个视频Android 4 4 短信 API http www youtube com watch v mdq0R2WQssQ DevBytes 解释了 KitKat 中 SMS API 的最新变化 他们还提供了示例项目的链接 http
  • Sharepoint Server 对于 Excel Services 或 Excel Web Access 是必需的吗

    Excel Services 和 Excel Web Access 随 Microsoft Office SharePoint Server 2007 一起提供 我想知道是否可以在不运行 Sharepoint Server 的情况下使用 E
  • 如何将dll作为服务运行?

    我知道如何编写 dll 如何编写服务以及如何运行 dllrundll32 但现在我想编写一个在Windows中作为服务安装的dll 我不知道这是否可能或应该导出 dll 中的哪个函数 如何将 dll 作为服务安装并运行 有几种不同的方法可以
  • 有没有办法强制 svcutil.exe 忽略 SSL 证书问题?

    我需要 svcutil exe 为我生成代理类 但问题是 Web 服务只能通过 HTTPS 访问 并且 SSL 证书是自签名的 如何强制 svcutil exe 忽略此问题 似乎有效的一件事是启动 Fiddler 并让它在您发出 SVCUT
  • Inno Setup - 在文件复制之前正确停止服务

    我们的安装过程包括一个 Windows 服务 如果我们的软件配置为作为服务器安装 相对于客户端安装 则会安装该服务 我添加了服务库 http www sandon it files services unicode iss为了能够管理服务

随机推荐

  • html 学习 常用的html标签及使用

    html是什么 超文本标记语言 Hypertext Markup Language HTML 是一种用于创建网页的标记语言 本质上是浏览器可识别的规则 我们按照规则写网页 浏览器根据规则渲染我们的网页 对于不同的浏览器 对同一个标签可能会有
  • nginx下载安装启动(mac)

    为了方便下载管理 建议下载brew工具 bin zsh c curl fsSL https gitee com cunkai HomebrewCN raw master Homebrew sh 使用brew安装nginx brew inst
  • 利用stm32cubemx生成单极性倍频spwm调制代码步骤

    利用stm32实现单极性倍频SPWM调制 电赛必备 哔哩哔哩 利用stm32cubemx生成单极性倍频spwm调制 首先打开cubemx选择mcu型号 配置时钟等 很多教程讲得很好 我这就跳过这些 接下来来到定时器的配置 对于全桥电路 需要
  • 代码管理工具github+git+tortoisegit下载

    GitHub是世界上最大的代码托管平台 是程序员的必备神器 Git 是一个开源的分布式版本控制系统 用于敏捷高效地处理任何或小或大的项目 tortoisegit是一款开源的git的版本控制系统 也叫海龟git TortoiseGit的安装和
  • Session 简介及绑定

    session是什么 其实session是一个存在服务器上的类似于一个散列表格的文件 里面存有我们需要的信息 在我们需要用的时候可以从里面取出来 说起session的作用 简单的举个例子 我们在登录某些网站的时候 输入了用户名密码 登录以后
  • GTest测试框架使用

    Gtest框架简介 Gtest是Google Test的简称 是Google开发的C 单元测试框架 适用于多个平台 Liunx Mac OS X Windows Cygwin Windows CE and Symbian PlatformI
  • OpenWrt-uci脚本命令

    转自 http developer t firefly com thread 1035 1 1 html 目录 1 UCI命令 2 UCI的文件和流程 3 UCI 的文件语法 4 UCI 命令读写配置 5 综合实例 1 UCI命令 一个众所
  • 国内知名公共DNS服务器 IP

    国内知名公共 DNS 服务器 IP 腾讯 DNS 119 29 29 29 182 254 116 116 阿里 DNS 223 5 5 5 223 6 6 6 百度 DNS 180 76 76 76 114DNS 114 114 114
  • osg学习(六十八)序列化插件加载过程

    加载D OSG OAGEARTH x86 bin osgPlugins 3 6 3 osgdb serializers osgd dll
  • 微信小程序 公众号 订阅消息 模板 正则 参数校验

    自己配置订阅消息模板 如果参数格式不正确 会导致订阅消息发不出去 所以在创建模板的时候需要校验参数格式 订阅通知参数值内容限制说明 微信官方文档 创建模板 代码
  • qt 信号发送太快,槽太慢的解决办法

    手机码字太慢 自己看 ifndef THREADTEST H define THREADTEST H include include include include class ThreadTest public QObject Q OBJ
  • 职业规划-IT方向(超详细,超具体)

    前言 今天是周五 本来想好好休息 前天写了一篇博文 说出我的故事 献给正在迷茫的你 不少读者留言不知该如何做职业规划 于是继续拖着忙碌了一周疲倦的身体 坐在电脑前 吹着电扇 提笔写下这篇 职业规划 IT方向 如果你是应届生 或者准备转行 I
  • Django项目想要在 Python Console里面进行操作 报错找不到对应模块

    Django项目想要在 Python Console里面进行操作 报错找不到对应模块 问题描述 ModuleNotFoundError No module named django 问题原因 在进行对 Python console操作 进行
  • 6.1-深度学习简介

    文章目录 一 深度学习的三个步骤 1 1 全连接前馈网络 Fully Connect Feedforward Network 1 2 矩阵运算 Matrix Operation 1 3 手写数字辨识 二 确定评价函数 goodness of
  • 静电电容

    1 用电容进行ESD的防护只能用数pF到数百pF的小电容 这里关注的不是容量而是串联等效电感参数 静电放电极快 对应极高的频率 耐压的问题不用考虑 因为静电源内阻极高 能量很小 放电时电压跌落极快 2 理论上讲大电容并不会因为时间常数的增加
  • ❤echarts折线图完整使用及详细配置参数

    echarts折线图完整使用及详细配置参数 进入echarts官网 查看案例 下面说说一些echarts图的调节 一 配置echarts具体参数 01 基础版本的折线图 option xAxis type category data Mon
  • 将gif图转成静态图片显示canvas

    需求描述 仅一张gif动图 进入页面 呈现静态图片显示 点击 gif图显示 代码实现
  • uniapp全局分享以及指定页面分享禁用的设置

    1 创建share js文件 module exports onLoad 设置默认的转发参数 share title 默认为小程序名称 path 默认为当前页面路径 imageUrl 默认为当前页面的截图 白名单 const urlList
  • Apollo学习笔记

    Apollo学习笔记 Apollo课程 智能驾驶入门课程 无人驾驶概览 1 软件层分为三层 实时操作系统 RTOS 确保在给定时间内完成特定任务 实时时确保系统稳定性 驾驶安全性的重要要求 通过在Ubuntu Linux操作系统加入Apol
  • 带有Cookie功能的HTTP访问函数,GET,PUT/POST

    define AFX INET SERVICE FTP INTERNET SERVICE FTP define AFX INET SERVICE HTTP INTERNET SERVICE HTTP define AFX INET SERV