post部分比较容易, 网上也很多, 一般来说, 使用socket发包需要处理较多情况, 具体细节可以在RLib的源码中找到, 这里就不贴了.验证码设计得比较简单, 几句代码就可以搞定了, 99%识别(偶尔网络失败)
extern "C" __declspec(dllexport) int WINAPI QueryVerifyCode(IN OUT LPTSTR collcc)
{
HttpResponse *pResponse = nullptr;
auto pImageStream = Net::WebClient::GetResponseStream(String(T("http://my.37.com/code.php?COLLCC=")) + collcc,
nullptr, &pResponse);
if (pImageStream != nullptr)
{
if (pResponse == nullptr)
{
delete pImageStream;
return -1;
}
XYCode verify_code(pImageStream);
pResponse->Close();//delete pImageStream;
//干掉 顶部 底部
verify_code.VTrim(3, 4);
//干掉 左 右
verify_code.HTrim(6, 6);
//去噪
verify_code.ChangePixel(0, 0, 255, 0, 0, 255, 0, 0, 255);
if (verify_code.RecognizeImage())
{
String rt = verify_code.UTF8Text.Trim().Replace(T(" "), T(""));
debug_warning(rt);//识别结果
return 1;
}
}
return 0;
}