77 "io"
88 "net/http"
99 "net/url"
10+ "strings"
1011 "time"
1112
1213 "github.com/go-acme/lego/v4/providers/dns/internal/errutils"
@@ -39,8 +40,6 @@ func NewClient(username, password string) *Client {
3940// https://www.reg.ru/support/help/api2#zone_remove_record
4041func (c Client ) RemoveTxtRecord (ctx context.Context , domain , subDomain , content string ) error {
4142 request := RemoveRecordRequest {
42- Username : c .username ,
43- Password : c .password ,
4443 Domains : []Domain {{DName : domain }},
4544 SubDomain : subDomain ,
4645 Content : content ,
@@ -60,8 +59,6 @@ func (c Client) RemoveTxtRecord(ctx context.Context, domain, subDomain, content
6059// https://www.reg.ru/support/help/api2#zone_add_txt
6160func (c Client ) AddTXTRecord (ctx context.Context , domain , subDomain , content string ) error {
6261 request := AddTxtRequest {
63- Username : c .username ,
64- Password : c .password ,
6562 Domains : []Domain {{DName : domain }},
6663 SubDomain : subDomain ,
6764 Text : content ,
@@ -79,21 +76,27 @@ func (c Client) AddTXTRecord(ctx context.Context, domain, subDomain, content str
7976func (c Client ) doRequest (ctx context.Context , request any , fragments ... string ) (* APIResponse , error ) {
8077 endpoint := c .baseURL .JoinPath (fragments ... )
8178
79+ query := endpoint .Query ()
80+ query .Set ("username" , c .username )
81+ query .Set ("password" , c .password )
82+ endpoint .RawQuery = query .Encode ()
83+
8284 inputData , err := json .Marshal (request )
8385 if err != nil {
8486 return nil , fmt .Errorf ("failed to create input data: %w" , err )
8587 }
8688
87- query := endpoint .Query ()
88- query .Add ("input_data" , string (inputData ))
89- query .Add ("input_format" , "json" )
90- endpoint .RawQuery = query .Encode ()
89+ data := url.Values {}
90+ data .Set ("input_data" , string (inputData ))
91+ data .Set ("input_format" , "json" )
9192
92- req , err := http .NewRequestWithContext (ctx , http .MethodGet , endpoint .String (), http . NoBody )
93+ req , err := http .NewRequestWithContext (ctx , http .MethodPost , endpoint .String (), strings . NewReader ( data . Encode ()) )
9394 if err != nil {
9495 return nil , fmt .Errorf ("unable to create request: %w" , err )
9596 }
9697
98+ req .Header .Add ("Content-Type" , "application/x-www-form-urlencoded" )
99+
97100 resp , err := c .HTTPClient .Do (req )
98101 if err != nil {
99102 return nil , errutils .NewHTTPDoError (req , err )
0 commit comments