Menu

[r2218]: / trunk / Src / Web.URegistrar.pas  Maximize  Restore  History

Download this file

163 lines (132 with data), 4.9 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
{
* Web.URegistrar.pas
*
* Implements a class that interfaces with a web service to register the
* application online.
*
* $Rev$
* $Date$
*
* ***** BEGIN LICENSE BLOCK *****
*
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
*
* The Original Code is Web.URegistrar.pas, formerly URegistrar.pas then
* NsWebServices.URegistrar.pas.
*
* The Initial Developer of the Original Code is Peter Johnson
* (http://www.delphidabbler.com/).
*
* Portions created by the Initial Developer are Copyright (C) 2006-2011 Peter
* Johnson. All Rights Reserved.
*
* Contributor(s)
* NONE
*
* ***** END LICENSE BLOCK *****
}
unit Web.URegistrar;
interface
uses
// Delphi
Classes,
// Project
Web.UStdWebService;
type
{
TRegistrar
Class that registers the application online by using the registration web
service.
}
TRegistrar = class(TStdWebService)
public
constructor Create;
{Class constructor. Initialises service.
}
function Submit(const Data: TStrings): string;
{Sends application registration data to web service and interprets
response.
@param Data Application registration information as list of Name=Value
data.
@return Registration key.
}
end;
implementation
uses
// Project
UStrUtils, UURIParams, Web.UInfo;
{
Web service notes: register-app.php
-----------------------------------
This web service enables CodeSnip to register the application with the
DelphiDabbler website.
The service accepts registration information as a series of name=value pairs
POSTed to it. The required and optional data is as follows.
+--------------------------------------------------------------------+
| Name | Required? | Description |
+-----------+-----------+--------------------------------------------+
| ProgId | Yes | Program id code (string) |
+-----------+-----------+--------------------------------------------+
| ProgName | No | Name of program (string) |
+-----------+-----------+--------------------------------------------+
| ProgVer | No | Program version number (dotted quad) |
+-----------+-----------+--------------------------------------------+
| ProgKey | Yes | Unique program key (32 hex digits) |
+-----------+-----------+--------------------------------------------+
| UserName | Yes | Name of user registering program |
+-----------+-----------+--------------------------------------------+
| MailList | No | Whether to join any mailing list (0 or 1) |
+-----------+-----------+--------------------------------------------+
| UserEmail | No* | Email address of user joining mailing list |
| | | * required only if MailList=1 |
+-----------+-----------+--------------------------------------------+
Responses from the web service comprise a numeric success code on a line on
its own followed by some data, i.e.
<success-code> CRLF <data>
If registration succeeds the success code is '0' and the data is the program's
registration key which is a string of 32 hex digits.
If the registration fails the success code is a +ve error code and the data
is an error message.
If the client application accessing web service does not supply the required
user agent then the service responds with a HTTP 403 (Forbidden) error.
}
const
// Web service info
cScriptName = 'register-app.php'; // script name
cUserAgent = 'DelphiDabbler-Registrar-v2'; // user agent string
{ TRegistrar }
constructor TRegistrar.Create;
{Class constructor. Initialises service.
}
begin
inherited Create(TWebServiceInfo.Create(cScriptName, cUserAgent));
end;
function TRegistrar.Submit(const Data: TStrings): string;
{Sends application registration data to web service and interprets response.
@param Data Application registration information as list of Name=Value data.
@return Registration key.
}
var
Response: TStringList; // response from server
Query: TURIParams;
begin
Query := nil;
Response := TStringList.Create;
try
Query := TURIParams.Create(Data);
PostQuery(Query, Response);
Result := StrTrim(Response.Text); // registration key
finally
Query.Free;
Response.Free;
end;
end;
end.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.