Menu

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

Download this file

158 lines (127 with data), 5.0 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
{
* URegistrar.pas
*
* Class that registers the application online.
*
* v0.1 of 07 Apr 2006 - Original version.
* v1.0 of 24 May 2006 - Corrected and greatly extended comments.
* v1.1 of 13 May 2009 - Changed to use revised TWebService inherited
* constructor and its single TWebServiceInfo parameter.
*
*
* ***** 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 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-2009 Peter
* Johnson. All Rights Reserved.
*
* ***** END LICENSE BLOCK *****
}
unit URegistrar;
interface
uses
// Delphi
Classes,
// Project
UWebService;
type
{
TRegistrar
Class that registers the application online.
}
TRegistrar = class(TDDabStdWebService)
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
// Delphi
SysUtils,
// Project
UWebInfo;
{
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-v1'; // 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
begin
Response := TStringList.Create;
try
PostQuery(Data, Response);
Result := Trim(Response.Text); // registration key
finally
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.